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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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" <fxmanceaux@chello.fr> a écrit dans le message de
news:ed51bAmcEHA.1408@TK2MSFTNGP12.phx.gbl...
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
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