Bonjour,
La procédure suivante a été élaborée par Frédéric Sigonneau. Pour tester ce
type de procédure, il faudrait que j'aie un fichier dont l'une des
références du projetVBA du classeur est "Manquante". Je travaille
actuellement avec Excel 2016. Le chemin de la macro complémentaire sous
Excel 2016 est :
"C:\Program Files (x86)\Microsoft
Office\root\Office16\Library\Analysis\ATPVBAEN.XLAM"
Dans le Thisworkbook du fichier, copie la procédure suivante dans le
ThisWorkbook du projetVBA du classeur.
Elle n'a pas été testée.
'------------------------------------------------
Private Sub Workbook_Open()
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
'------------------------------------------------
Tu as un article de Microsoft sur le sujet (en anglais) :
https://support.microsoft.com/en-gb/help/244167/writing-automation-clients-for-multiple-office-versions
N.B. Si tu as un fichier dont une référence est marquée "manquante", ne
décoche pas cette référence et publie le classeur en utilisant le site
"Cjoint.com". Tu peux effacer les données dans les feuilles si tu le
désires. Retourne-nous l'adresse obtenue ici.
MichD