OVH Cloud OVH Cloud

Bo - Bibliotheque Object _ Suite et ???

5 réponses
Avatar
tip.tiptop
Bonsoir,
Rappel
J'ai un programme qui requiert la librairie de Word pour fonctionner.
Ce dernier circule de Pc en PC

Lorsque l'appli s'éxécute la bibliothèque objet à laquelle je dois faire
référence est différente et ce en fonction du pack installé.
Sans quoi l'appli plante lamentablement.

Évidement lorsque je fais référence à l'une des BO les Pc qui font appels à
l'autre ne fonctionne plus.
Comment affecter par code la bonne BO en fonction du pack installé sur la
machine?

A ma question MichDenis m'a répndu:

> Essaie ceci : à copier dans le ThisWorkbook de ton Classeur :
>
> '-------------------------------
> Private Sub Workbook_Open()
>
> Dim Ref As Object, R As Object
> Set Ref = ThisWorkbook.VBProject.References
> For Each R In Ref
> If R.Name = "Word" Then
> Ref.Remove R
> End If
> Next
>
> ThisWorkbook.VBProject.References.AddFromGuid _
> "{00020905-0000-0000-C000-000000000046}", 3, 8
>
> End Sub
> '-------------------------------

Cette procédure marche lorsque le classeur que l'on ouvre ne présente aucune
liaison à une BO.
Si une Bo "manquante est trouvée , j'ai le message d'erreur suivant: Erreur
chargement DLL.
Donc comment dans un premier temps supprimer les librairies manquantes avant
d'affecter les bonnes BO?

j'ai bien essayer de mettre devant la solution de Mich les quelques lignes
issues d'une solution déja proposée dans le forum par Mich mais hélas ça ne
fonctionne pas.


> '-------------------------------
> Private Sub Workbook_Open()
>
> Dim Ref As Object, R As Object
> Set Ref = ThisWorkbook.VBProject.References

> For Each R In Ref
> If R.isbroken = True Then
> Ref.Remove R
> End If

Next
> For Each R In Ref
> If R.Name = "Word" Then
> Ref.Remove R
> End If
> Next
>
> ThisWorkbook.VBProject.References.AddFromGuid _
> "{00020905-0000-0000-C000-000000000046}", 3, 8
>
> End Sub
> '-------------------------------

OU ME TROMPE JE, OU ES C E PAS POSSIBLE DE FAIRE COMME CECI?

5 réponses

Avatar
MichDenis
Tu veux expliquer ce que tu entends par :

| Cette procédure marche lorsque le classeur que l'on ouvre ne présente aucune
| liaison à une BO.

à quoi fais-tu référence ? Ta barre d'outils est liée (attachée) au classeur.xls , à l'application
Word ?
Est-ce une barre d'outils personnalisée ou une barre d'outils standard appartenant à l'application
auquelle tu as ajouté des commandes ?



"tip.tiptop" a écrit dans le message de news:
4568ca54$0$4239$
Bonsoir,
Rappel
J'ai un programme qui requiert la librairie de Word pour fonctionner.
Ce dernier circule de Pc en PC

Lorsque l'appli s'éxécute la bibliothèque objet à laquelle je dois faire
référence est différente et ce en fonction du pack installé.
Sans quoi l'appli plante lamentablement.

Évidement lorsque je fais référence à l'une des BO les Pc qui font appels à
l'autre ne fonctionne plus.
Comment affecter par code la bonne BO en fonction du pack installé sur la
machine?

A ma question MichDenis m'a répndu:

Essaie ceci : à copier dans le ThisWorkbook de ton Classeur :

'-------------------------------
Private Sub Workbook_Open()

Dim Ref As Object, R As Object
Set Ref = ThisWorkbook.VBProject.References
For Each R In Ref
If R.Name = "Word" Then
Ref.Remove R
End If
Next

ThisWorkbook.VBProject.References.AddFromGuid _
"{00020905-0000-0000-C000-000000000046}", 3, 8

End Sub
'-------------------------------


Cette procédure marche lorsque le classeur que l'on ouvre ne présente aucune
liaison à une BO.
Si une Bo "manquante est trouvée , j'ai le message d'erreur suivant: Erreur
chargement DLL.
Donc comment dans un premier temps supprimer les librairies manquantes avant
d'affecter les bonnes BO?

j'ai bien essayer de mettre devant la solution de Mich les quelques lignes
issues d'une solution déja proposée dans le forum par Mich mais hélas ça ne
fonctionne pas.


'-------------------------------
Private Sub Workbook_Open()

Dim Ref As Object, R As Object
Set Ref = ThisWorkbook.VBProject.References

For Each R In Ref
If R.isbroken = True Then
Ref.Remove R
End If


Next
For Each R In Ref
If R.Name = "Word" Then
Ref.Remove R
End If
Next

ThisWorkbook.VBProject.References.AddFromGuid _
"{00020905-0000-0000-C000-000000000046}", 3, 8

End Sub
'-------------------------------


OU ME TROMPE JE, OU ES C E PAS POSSIBLE DE FAIRE COMME CECI?

Avatar
tip.tiptop
Je mexplique, enfin je tente
lorsque je reçois mon appli en provenance d'un autre PC et que cette
dernière ne fonctionne pas, je sais qu'en allant voir
dans le code qu'une Réf. à l'BO est manquente puisque version pack
diffèrente

"MichDenis" a écrit dans le message de news:

Tu veux expliquer ce que tu entends par :

| Cette procédure marche lorsque le classeur que l'on ouvre ne présente
aucune
| liaison à une BO.

à quoi fais-tu référence ? Ta barre d'outils est liée (attachée) au
classeur.xls , à l'application
Word ?
Est-ce une barre d'outils personnalisée ou une barre d'outils standard
appartenant à l'application
auquelle tu as ajouté des commandes ?



"tip.tiptop" a écrit dans le message de news:
4568ca54$0$4239$
Bonsoir,
Rappel
J'ai un programme qui requiert la librairie de Word pour fonctionner.
Ce dernier circule de Pc en PC

Lorsque l'appli s'éxécute la bibliothèque objet à laquelle je dois faire
référence est différente et ce en fonction du pack installé.
Sans quoi l'appli plante lamentablement.

Évidement lorsque je fais référence à l'une des BO les Pc qui font appels
à
l'autre ne fonctionne plus.
Comment affecter par code la bonne BO en fonction du pack installé sur la
machine?

A ma question MichDenis m'a répndu:

Essaie ceci : à copier dans le ThisWorkbook de ton Classeur :

'-------------------------------
Private Sub Workbook_Open()

Dim Ref As Object, R As Object
Set Ref = ThisWorkbook.VBProject.References
For Each R In Ref
If R.Name = "Word" Then
Ref.Remove R
End If
Next

ThisWorkbook.VBProject.References.AddFromGuid _
"{00020905-0000-0000-C000-000000000046}", 3, 8

End Sub
'-------------------------------


Cette procédure marche lorsque le classeur que l'on ouvre ne présente
aucune
liaison à une BO.
Si une Bo "manquante est trouvée , j'ai le message d'erreur suivant:
Erreur
chargement DLL.
Donc comment dans un premier temps supprimer les librairies manquantes
avant
d'affecter les bonnes BO?

j'ai bien essayer de mettre devant la solution de Mich les quelques lignes
issues d'une solution déja proposée dans le forum par Mich mais hélas ça
ne
fonctionne pas.


'-------------------------------
Private Sub Workbook_Open()

Dim Ref As Object, R As Object
Set Ref = ThisWorkbook.VBProject.References

For Each R In Ref
If R.isbroken = True Then
Ref.Remove R
End If


Next
For Each R In Ref
If R.Name = "Word" Then
Ref.Remove R
End If
Next

ThisWorkbook.VBProject.References.AddFromGuid _
"{00020905-0000-0000-C000-000000000046}", 3, 8

End Sub
'-------------------------------


OU ME TROMPE JE, OU ES C E PAS POSSIBLE DE FAIRE COMME CECI?







Avatar
MichDenis
Ouvre l'éditeur de code et utilise le bouton "Explorateur d'objets" de la barre de commande
ou la commande du même nom du menu affichage. Raccourci clavier F2

Dans la fenêtre qui s'ouvre, dans la liste déroulante du haut, celle qui affiche
par défaut "Toutes bibliothèques", laquelle dans la liste dans la liste est
problématique...? Tu peux comparer cette liste avec un classeur vierge.
La liste affiche les noms des bibliothèques chargés pour le classeur
qui était actif au moment d'appeler l'explorateur d'objets.

Maintenant, si tu ouvres la fenêtre des références, lequels ont des
mentions : "Manquantes" ?


"tip.tiptop" a écrit dans le message de news:
4569c15f$0$18794$
Je mexplique, enfin je tente
lorsque je reçois mon appli en provenance d'un autre PC et que cette
dernière ne fonctionne pas, je sais qu'en allant voir
dans le code qu'une Réf. à l'BO est manquente puisque version pack
diffèrente
Avatar
tip.tiptop
Ja pars de la situation suivante.
Je recupère mon appli qui a tourné normalement sur un autre poste.

J'ouvre mon appli et fait ce que tu me demande ci-dessous
je trouve dans la liste déroulante du haut aucune réf à Word.

Nota: Par lacommande outil référence je visualise dans la boite de dialogue
une coche pour :MANQUANT :Microsoft Word 11.0 Object Library
C"est normal pisque sur mon poste il faut que je fasse référence à :
Microsoft Word 10.0 Object Library

Si je decoche: MANQUANT :Microsoft Word 11.0 Object Library et coche
Microsoft Word 10.0 Object Library tout ce met à fonctionner.
jusqu'a que cette aplli parte sur un poste avec une version diffèrente du
Pack


"MichDenis" a écrit dans le message de news:

Ouvre l'éditeur de code et utilise le bouton "Explorateur d'objets" de la
barre de commande
ou la commande du même nom du menu affichage. Raccourci clavier F2

Dans la fenêtre qui s'ouvre, dans la liste déroulante du haut, celle qui
affiche
par défaut "Toutes bibliothèques", laquelle dans la liste dans la liste
est
problématique...? Tu peux comparer cette liste avec un classeur vierge.
La liste affiche les noms des bibliothèques chargés pour le classeur
qui était actif au moment d'appeler l'explorateur d'objets.

Maintenant, si tu ouvres la fenêtre des références, lequels ont des
mentions : "Manquantes" ?


"tip.tiptop" a écrit dans le message de news:
4569c15f$0$18794$
Je mexplique, enfin je tente
lorsque je reçois mon appli en provenance d'un autre PC et que cette
dernière ne fonctionne pas, je sais qu'en allant voir
dans le code qu'une Réf. à l'BO est manquente puisque version pack
diffèrente




Avatar
MichDenis
Si ceci ne fonctionne pas, envoie moi un de tes fichiers
ayant une référence manquante directement dans ma BAL


Private Sub Workbook_Open()

Dim Ref As Object, R As Object
Set Ref = ThisWorkbook.VBProject.References
For Each R In Ref
If R.IsBroken = True Then
Ref.Remove R
End If
Next

ThisWorkbook.VBProject.References.AddFromGuid _
"{00020905-0000-0000-C000-000000000046}", 3, 8

End Sub




"tip.tiptop" a écrit dans le message de news:
4569df87$0$21665$
Ja pars de la situation suivante.
Je recupère mon appli qui a tourné normalement sur un autre poste.

J'ouvre mon appli et fait ce que tu me demande ci-dessous
je trouve dans la liste déroulante du haut aucune réf à Word.

Nota: Par lacommande outil référence je visualise dans la boite de dialogue
une coche pour :MANQUANT :Microsoft Word 11.0 Object Library
C"est normal pisque sur mon poste il faut que je fasse référence à :
Microsoft Word 10.0 Object Library

Si je decoche: MANQUANT :Microsoft Word 11.0 Object Library et coche
Microsoft Word 10.0 Object Library tout ce met à fonctionner.
jusqu'a que cette aplli parte sur un poste avec une version diffèrente du
Pack


"MichDenis" a écrit dans le message de news:

Ouvre l'éditeur de code et utilise le bouton "Explorateur d'objets" de la
barre de commande
ou la commande du même nom du menu affichage. Raccourci clavier F2

Dans la fenêtre qui s'ouvre, dans la liste déroulante du haut, celle qui
affiche
par défaut "Toutes bibliothèques", laquelle dans la liste dans la liste
est
problématique...? Tu peux comparer cette liste avec un classeur vierge.
La liste affiche les noms des bibliothèques chargés pour le classeur
qui était actif au moment d'appeler l'explorateur d'objets.

Maintenant, si tu ouvres la fenêtre des références, lequels ont des
mentions : "Manquantes" ?


"tip.tiptop" a écrit dans le message de news:
4569c15f$0$18794$
Je mexplique, enfin je tente
lorsque je reçois mon appli en provenance d'un autre PC et que cette
dernière ne fonctionne pas, je sais qu'en allant voir
dans le code qu'une Réf. à l'BO est manquente puisque version pack
diffèrente