Bonjour,
J'écris des macros pour mon usage personnel et les diffuse/mets à disposition de mes collègues qui ont les mêmes besoins que moi.
Si la macro ne manipule que des objets d'Excel cela ne pose pas de problèmes particulier en dehors d'abaisser un peu le niveau de sécurité pour les macros ("désactiver les macros avec avertissement"), ce qui est généralement l'option de sécurité par défaut.
Ma dernière réalisation accède aux objets de Outlook. Pour qu'elle fonctionne, il faut que la référence à Outlook ait été ajoutée à VBA. Il est possible de l'ajouter à l'ouverture du classeur contenant la macro mais pour cela l'option d'Excel "Accès approuvé au modèle d'objet du projet VBA" doit être activée ce qui est beaucoup moins standard. De plus, j'ai lu que valider "Accès approuvé au modèle d'objet du projet VBA" pose de gros problèmes de sécurité.
Il est possible de tester que "Accès approuvé au modèle d'objet du projet VBA" a été validé en testant "IsError(ThisWorkbook.VBProject)" cela permet d'avertir l'utilisateur qu'il y a un risque de soucis et de ne pas essayer d'ajouter une référence mais cela ne permet pas de savoir si une référence est présente ou non dans VBA (si les références nécessaires sont présentes, l'accès au modèle d'objet de VBA n'est pas utile donc pas la peine d'alerter l'utilisateur).
Une piste autait été de faire du late binding mais j'ai un "Private WithEvents" sur un objet Outlook qui s'en accommode fort mal (et je n'ai pas trouvé comment contourner).
Auriez-vous une méthode pour éviter ces désagréments et permettre qu'une macro puisse s’exécuter sur n'importe quel poste de travail sans intervention ou presque ?
Par avance, je vous remercie pour vos réponses.
A bientôt
GM
J'écris des macros pour mon usage personnel et les diffuse/mets à disposition de mes collègues qui ont les mêmes besoins que moi.
Si la macro ne manipule que des objets d'Excel cela ne pose pas de problèmes particulier en dehors d'abaisser un peu le niveau de sécurité pour les macros ("désactiver les macros avec avertissement"), ce qui est généralement l'option de sécurité par défaut.
Ma dernière réalisation accède aux objets de Outlook. Pour qu'elle fonctionne, il faut que la référence à Outlook ait été ajoutée à VBA. Il est possible de l'ajouter à l'ouverture du classeur contenant la macro mais pour cela l'option d'Excel "Accès approuvé au modèle d'objet du projet VBA" doit être activée ce qui est beaucoup moins standard. De plus, j'ai lu que valider "Accès approuvé au modèle d'objet du projet VBA" pose de gros problèmes de sécurité.
Il est possible de tester que "Accès approuvé au modèle d'objet du projet VBA" a été validé en testant "IsError(ThisWorkbook.VBProject)" cela permet d'avertir l'utilisateur qu'il y a un risque de soucis et de ne pas essayer d'ajouter une référence mais cela ne permet pas de savoir si une référence est présente ou non dans VBA (si les références nécessaires sont présentes, l'accès au modèle d'objet de VBA n'est pas utile donc pas la peine d'alerter l'utilisateur).
Une piste autait été de faire du late binding mais j'ai un "Private WithEvents" sur un objet Outlook qui s'en accommode fort mal (et je n'ai pas trouvé comment contourner).
Auriez-vous une méthode pour éviter ces désagréments et permettre qu'une macro puisse s’exécuter sur n'importe quel poste de travail sans intervention ou presque ?
Par avance, je vous remercie pour vos réponses.
A bientôt
GM
Dernière édition: