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
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
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
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" <pierre.bunoz@wanadoo.fr> a écrit dans le message de news:
46f36f4d$0$5113$ba4acef3@news.orange.fr...
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
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