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

Références manquantes

1 réponse
Avatar
Pierre
Bonjour
J'au un classeur Excel utilisés par plusieurs utilisateurs.
Certains postes sont équipés de la suite 2000 (outlook- word - excel)
d'autres en l'occurance celui sur lequel je développe avec la suite 2003
Je dois dans mon projet vb Excel cocher la référence "Microsoft Outlook"
pour avoir accès à la messagerie (envoi de message à partir classeur Excel)
Sur mon poste comme je suis en 2003, la référence est donc "Microsoft
Outlook 11.0 Object Library"
Quand je distribus sur les autres postes le classeur, du fait de la
référence manquante, le classeur bug Excel (Excel a rencontrer..et doit
fermer !!!)
J'essaye de mettre en place différentes procédures du style
-----------------------------------
Sub SupprimerRéférencesManquantes()
'Penser à cocher Microsoft Visual Basic for Applications Extensibility
'Penser à cocher dans Excel Outils/Macro/Sécurité/Editeur aprouvé
'(Ou source fiable)/faire confiance au projet visual basic
Dim ref As Reference
For Each ref In ThisWorkbook.VBProject.References
If ref.IsBroken Then
ThisWorkbook.VBProject.References.Remove ref
End If
Next
End Sub
----------------------------------
Ceci ne fonctionne pas car le classeur plante dès sont ouverture
en fait je pense qu'il faudrait lui demander à l'ouverture
1/ ne pas compiler
2/ supprimer les références manquantes
3/ ajouter les bonnes références

Pouvez vous m'aider (surtout sur la compilation conditionnelle à l'ouverture
du classeur)
Merci
Pierre

1 réponse

Avatar
tissot.emmanuel
Bonjour,

Tu peux te passer de cocher la référence à Outlook en effectuant une liaison
tardive:

Sub Test()
Dim MsOutlook As Object
On Error Goto Errh:
Set MsOutlook = CreateObject("Outlook.Application")
'Code
Exit Sub
Errh:
Msgbox "Aucune version d'Outlook installée sur ce poste."
End Sub

En procédant ainsi tu perd un peu en performance mais tu gagne en
portabilité, la référence étant établie à l'exécution.
Si ton code utilise des constantes Outlook pense à les remplacer par leurs
valeurs respectives ou à les redéfinir.

Cordialement,

Manu/

"Pierre" a écrit dans le message de news:
46f36f4d$0$5113$
Bonjour
J'au un classeur Excel utilisés par plusieurs utilisateurs.
Certains postes sont équipés de la suite 2000 (outlook- word - excel)
d'autres en l'occurance celui sur lequel je développe avec la suite 2003
Je dois dans mon projet vb Excel cocher la référence "Microsoft Outlook"
pour avoir accès à la messagerie (envoi de message à partir classeur
Excel)
Sur mon poste comme je suis en 2003, la référence est donc "Microsoft
Outlook 11.0 Object Library"
Quand je distribus sur les autres postes le classeur, du fait de la
référence manquante, le classeur bug Excel (Excel a rencontrer..et doit
fermer !!!)
J'essaye de mettre en place différentes procédures du style
-----------------------------------
Sub SupprimerRéférencesManquantes()
'Penser à cocher Microsoft Visual Basic for Applications Extensibility
'Penser à cocher dans Excel Outils/Macro/Sécurité/Editeur aprouvé
'(Ou source fiable)/faire confiance au projet visual basic
Dim ref As Reference
For Each ref In ThisWorkbook.VBProject.References
If ref.IsBroken Then
ThisWorkbook.VBProject.References.Remove ref
End If
Next
End Sub
----------------------------------
Ceci ne fonctionne pas car le classeur plante dès sont ouverture
en fait je pense qu'il faudrait lui demander à l'ouverture
1/ ne pas compiler
2/ supprimer les références manquantes
3/ ajouter les bonnes références

Pouvez vous m'aider (surtout sur la compilation conditionnelle à
l'ouverture du classeur)
Merci
Pierre