Bonjour,
avec ces deux lignes de code, on peut charger cette référence, si Excel 2007 ou 2003
Si autres Excel, il faut chercher la référence dans le répertoire qui va bien, donc pas si simple....
Remarque, dans cet exemple, ce sont les chemins de mon PC, si chemins différents, même remarque que plus haut :
Private Sub Workbook_Open()
On Error Resume Next
ActiveWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Microsoft Office\Office12\MSOUTL.OLB")
ActiveWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Microsoft Office\Office11\MSOUTL.OLB")
If Err = 48 Then MsgBox "la référence n'a pas pu être chargée"
On Error GoTo 0
End Sub
Le code Erreur 48 signifie que la référence n'a pas été trouvée.
Un msgbox avertit, tu pourrais rajouter de chercher à la main MSOUTL.OLB, et de charger manuellement
Si le code est 32813, cela signifie que la référence est déjà chargée, ce qui provoquerait également une erreur d'où l'utilisation du On Error Resume Next
Le code est placé dans l'évènement Workbook_Open