helpvb
Messages postés32Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention22 avril 2009
-
8 sept. 2006 à 11:06
helpvb
Messages postés32Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention22 avril 2009
-
8 sept. 2006 à 15:05
Bonjour,
J ai développé des macros VBA et suis sous environnement Office 11
J
ai besoin d assurer la compatibilité descendante dans la mesaure ou
plusieurs utilisateurs (office 9, 10, 11) utilisent ces macros.
J ai essayé un bout de code sur le forume utilisant l instruction suivante
Set oRefs = ActiveWorkbook.VBProject.References
J obtiens une erreur d execution 1004 : Erreur definie par l application ou par l'objet
Il semblerait que cette instruction marche sous Office 9 et 10 mais pas sous Office 11
Que dois je faire ???
Help et Merci d avance
A voir également:
Microsoft visual basic for applications extensibility 5.3
helpvb
Messages postés32Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention22 avril 2009 8 sept. 2006 à 12:02
Merci beaucoup pour ta réponse, l instruction passe maintenant mais je ne suis pas sur du bout de code que j execute pour régler mon problème de compatibilité descendante
1) J ai activé la Reference 'Microsoft Visual Basic for Application Extensibility 5.3'
Je suppose que c 'est nécesssaire Oui Non ?
2) Puisque tu as l air d etre un expert en la matiere , j en profite :-) ...
Aurais tu (si ce n est abusé... :-) ) le code qui permettrait que mon document Excel (sauvegardé sous Office 11) marche pour un utilisateur Office 9; le problème etant que dans ce cas, à l ouverture du document Excel, VBA pointe sur 'Reference manquante Office 11...'
Le bout de code viserait à décocher la reference manquante et d activer la reference correspondante
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 sept. 2006 à 12:19
Salut,
1/ Oui, c'est nécessaire.
Tout ce qui touche le VBProject, doit être itnitialisé par la référence ^^
2/ Je ne vois pas vraiment, je ne sais pas si c'est possible de mettre les bonnes dll.
Peut-être, en ayant le message d'erreur, d'installer la bonne dll dans le dossier, et d'y faire ensuite référence.
A tester ;)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 sept. 2006 à 12:22
Je ne suis pas du tout un expert, j'ai simplement pris ton instruction, fait un essai et j'ai regarder ce que me répondait l'aide de vba sur le message d'erreur.
Question 1 --> Nécéssaire je sais pas, tout dépend de ce que ton code fait. Essaye de la décochée. Habituellement si c'est bon, c'est qu'elle n'est pas necessaire, sinon tu as un message te disant que tu ne peut pas décocher une référence utilisée (en général).
Question 2 --> Je n'en ai aucune idée, désolé. Concernant la bibliothèque de base, j'aurais cru qu'il était capable de faire le changement tout seul. Pour les autres je ne sais pas.
Au pire, essye de faire ton projet avec office 9. Sur une compatibilité ascendante tu auras peut-etre plus de chance.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 sept. 2006 à 12:31
Salut Casy ;)
Pour le 1/, c'est facilement vérifiable :
Si tu ne charges pas la référence M$ VBA extensibility, losrque tu vas dans l'explorateur d'objets (F2) et que tu recherches "références", il ne trouve rien (pareil en cherchant VBProject)
et inversement.
La référence M$ VBA extensibility 5.3 charge la bibliothèque VBIDE
Le 2/ lui est un peu plus complexe à gérer mais je pense faisable.
helpvb
Messages postés32Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention22 avril 2009 8 sept. 2006 à 15:05
Le probleme du point 2 est que vu que le document Excel est positionné sur une Ref manquante en l'ouvrant depuis une version 9 d office (precedemment sauvegardé en Version 11) aucun code VBA n est executable et donc aucune tentative de code VBA visant à contourner ce probleme via du code me parait utile... vu qu il plante indiffféremment à la 1ere ligne de code...
Help Help :-) je suis bloqué !