Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quelqu'un pour tester ?

2 réponses
Avatar
Joel
Bonjour,

Oui, je sais, si je pose des questions et que personne ne répond, c'est que
:

Ou bien ma question est incompréhensible pour le commun des contributeurs,
Ou bien elle est trop compliquée !
Ou bien je ne suis pas assez poli (ou joli ?)
Ou bien encore, c'est moi qui suis à côté de la plaque ! LOL

Mais je tente une troisième (et dernière c'est promis!) fois (on ne sait
jamais !!!)

Il arrive qu'un application se ballade d'un environnement à un autre, et
qu'à un moment donné, VB ne parvienne plus à "retrouver" une bibliothèque
déclarée (cela arrive surtout avec la référence Microsoft Word xx.x Object
Library dans mon cas.

Il y a des procédures décrites sur Disciplus (merci Misange et Frédéric
Sigonneau), mais elles semblent ne pas fonctionner ! comme ci celles-ci
n'étaient basées que sur la théorie, mais pas testées en réalité.

En voici une (notée à tester d'ailleurs !) :

'=======================
Sub AddMissingRefs()
'examine les références d'un projet, repère celles qui
'sont déclarées manquantes et essaye de les réinstaller
'à tester
Dim LesRefs As Object, i&, Msg$, Cpt&, Rep&, Mnq&, Chemin$, Nom$

Set LesRefs = ThisWorkbook.VBProject.References
For i = 1 To LesRefs.Count
With LesRefs(i)
If .IsBroken Then
Mnq = Mnq + 1: Chemin = .FullPath: Nom = .Name
LesRefs.Remove LesRefs.Item(.Name)
If Dir(Chemin) = "" Then
Msg = "La librairie " & Nom & " est manquante et le fichier" &
vbLf
Msg = Msg & "'" & Chemin & "'" & vbLf
Msg = Msg & "ne peut être trouvé pour l'installer."
MsgBox Msg, vbCritical
Cpt = Cpt + 1
Else
LesRefs.AddFromFile Chemin
Rep = Rep + 1
End If
End If
End With
Next i

If Mnq > 0 Then
If Cpt > 0 Then Msg = Cpt & " référence(s) toujours manquante(s)"
If Rep > 0 Then Msg = Msg & Rep & "référence(s) réinstallée(s)"
End If

End Sub
Frédéric Sigonneau, (N°1118) '========================================Or,
quand une référence est manquante, il est impossible de lire les propriétés
"FullPath" et "Name"Par ailleurs la méthode Remove ne fonctionne pasCe qui
serait sympa, c'est que quelqu'un ayant testé ce phénomène puisse au moins
me dire si la procédure fonctionne chez lui.Pour rendre une bibliothèque
manquante après l'avoir cochée, il suffit de renommer le fichier en .bak par
exemple dans son dossier.En espérant un retourPar avance Merci !-- Bien
cordialement,
Joël GARBE
www.joelgarbe.fr

2 réponses

Avatar
FxM
Bonsoir Joel,

XL2K FR sur Win98SE. La macro a fonctionné sur un test avec
c:xla-xllcalltree97calltree97.xla
Tellement bien fonctionné qu'elle n'apparait plus dans la liste, je vais
devoir la réinstaller :o)

@+
FxM




On 24/07/04 10:18, Joel wrote:
Bonjour,

Oui, je sais, si je pose des questions et que personne ne répond, c'est que
:

Ou bien ma question est incompréhensible pour le commun des contributeurs,
Ou bien elle est trop compliquée !
Ou bien je ne suis pas assez poli (ou joli ?)
Ou bien encore, c'est moi qui suis à côté de la plaque ! LOL

Mais je tente une troisième (et dernière c'est promis!) fois (on ne sait
jamais !!!)

Il arrive qu'un application se ballade d'un environnement à un autre, et
qu'à un moment donné, VB ne parvienne plus à "retrouver" une bibliothèque
déclarée (cela arrive surtout avec la référence Microsoft Word xx.x Object
Library dans mon cas.

Il y a des procédures décrites sur Disciplus (merci Misange et Frédéric
Sigonneau), mais elles semblent ne pas fonctionner ! comme ci celles-ci
n'étaient basées que sur la théorie, mais pas testées en réalité.

En voici une (notée à tester d'ailleurs !) :

'====================== > Sub AddMissingRefs()
'examine les références d'un projet, repère celles qui
'sont déclarées manquantes et essaye de les réinstaller
'à tester
Dim LesRefs As Object, i&, Msg$, Cpt&, Rep&, Mnq&, Chemin$, Nom$

Set LesRefs = ThisWorkbook.VBProject.References
For i = 1 To LesRefs.Count
With LesRefs(i)
If .IsBroken Then
Mnq = Mnq + 1: Chemin = .FullPath: Nom = .Name
LesRefs.Remove LesRefs.Item(.Name)
If Dir(Chemin) = "" Then
Msg = "La librairie " & Nom & " est manquante et le fichier" &
vbLf
Msg = Msg & "'" & Chemin & "'" & vbLf
Msg = Msg & "ne peut être trouvé pour l'installer."
MsgBox Msg, vbCritical
Cpt = Cpt + 1
Else
LesRefs.AddFromFile Chemin
Rep = Rep + 1
End If
End If
End With
Next i

If Mnq > 0 Then
If Cpt > 0 Then Msg = Cpt & " référence(s) toujours manquante(s)"
If Rep > 0 Then Msg = Msg & Rep & "référence(s) réinstallée(s)"
End If

End Sub
Frédéric Sigonneau, (N°1118) '========================================Or,
quand une référence est manquante, il est impossible de lire les propriétés
"FullPath" et "Name"Par ailleurs la méthode Remove ne fonctionne pasCe qui
serait sympa, c'est que quelqu'un ayant testé ce phénomène puisse au moins
me dire si la procédure fonctionne chez lui.Pour rendre une bibliothèque
manquante après l'avoir cochée, il suffit de renommer le fichier en .bak par
exemple dans son dossier.En espérant un retourPar avance Merci !-- Bien
cordialement,
Joël GARBE
www.joelgarbe.fr


Avatar
Joel
Merci FxM pour ta contribution,

Je ne vois pas comment ta DLL a pu disparaître, car comment peut-elle
disparaître si elle n'existe pas ? Si la référence est indiquée manquante
dans la liste du menu Outils Références..., c'est qu'elle n'est plus à
l'endroit indiqué. La méthode remove ne retire pas du disque la DLL, mais se
contente de la "Décocher".

Il y aurait encore quelquechose que je n'aurais pas compris ?

A défaut de pouvoir décocher par VBA une référence manquante, je me suis
orienté vers une autre méthode, qui m'a été inspirée de l'échange avec
Michel PIERRON (Merci à lui !)

Trop long à développer ici, mais décrite depuis sur mon site (Lien VBA
Excel...)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"FxM" a écrit dans le message de
news:
Bonsoir Joel,

XL2K FR sur Win98SE. La macro a fonctionné sur un test avec
c:xla-xllcalltree97calltree97.xla
Tellement bien fonctionné qu'elle n'apparait plus dans la liste, je vais
devoir la réinstaller :o)

@+
FxM




On 24/07/04 10:18, Joel wrote:
Bonjour,

Oui, je sais, si je pose des questions et que personne ne répond, c'est
que


:

Ou bien ma question est incompréhensible pour le commun des
contributeurs,


Ou bien elle est trop compliquée !
Ou bien je ne suis pas assez poli (ou joli ?)
Ou bien encore, c'est moi qui suis à côté de la plaque ! LOL

Mais je tente une troisième (et dernière c'est promis!) fois (on ne sait
jamais !!!)

Il arrive qu'un application se ballade d'un environnement à un autre, et
qu'à un moment donné, VB ne parvienne plus à "retrouver" une
bibliothèque


déclarée (cela arrive surtout avec la référence Microsoft Word xx.x
Object


Library dans mon cas.

Il y a des procédures décrites sur Disciplus (merci Misange et Frédéric
Sigonneau), mais elles semblent ne pas fonctionner ! comme ci celles-ci
n'étaient basées que sur la théorie, mais pas testées en réalité.

En voici une (notée à tester d'ailleurs !) :

'====================== > > Sub AddMissingRefs()
'examine les références d'un projet, repère celles qui
'sont déclarées manquantes et essaye de les réinstaller
'à tester
Dim LesRefs As Object, i&, Msg$, Cpt&, Rep&, Mnq&, Chemin$, Nom$

Set LesRefs = ThisWorkbook.VBProject.References
For i = 1 To LesRefs.Count
With LesRefs(i)
If .IsBroken Then
Mnq = Mnq + 1: Chemin = .FullPath: Nom = .Name
LesRefs.Remove LesRefs.Item(.Name)
If Dir(Chemin) = "" Then
Msg = "La librairie " & Nom & " est manquante et le fichier" &
vbLf
Msg = Msg & "'" & Chemin & "'" & vbLf
Msg = Msg & "ne peut être trouvé pour l'installer."
MsgBox Msg, vbCritical
Cpt = Cpt + 1
Else
LesRefs.AddFromFile Chemin
Rep = Rep + 1
End If
End If
End With
Next i

If Mnq > 0 Then
If Cpt > 0 Then Msg = Cpt & " référence(s) toujours manquante(s)"
If Rep > 0 Then Msg = Msg & Rep & "référence(s) réinstallée(s)"
End If

End Sub
Frédéric Sigonneau, (N°1118)
'========================================Or,


quand une référence est manquante, il est impossible de lire les
propriétés


"FullPath" et "Name"Par ailleurs la méthode Remove ne fonctionne pasCe
qui


serait sympa, c'est que quelqu'un ayant testé ce phénomène puisse au
moins


me dire si la procédure fonctionne chez lui.Pour rendre une bibliothèque
manquante après l'avoir cochée, il suffit de renommer le fichier en .bak
par


exemple dans son dossier.En espérant un retourPar avance Merci !-- Bien
cordialement,
Joël GARBE
www.joelgarbe.fr