Gestion des références "Word Application" entre plusieurs versions d'Excel

Bonjour,J'ai developpé il y a quelques temps une application vba sur excel qui permet d'ouvrir des documents word, de les completer automatiquement et de les enregistrer en pdf. Une dixaine de personnes l'utilise et le tracage est effectué sur ce même fichier excel.

Initialement, nous etions tous sur Office 2010 mais nous passons progressivement sur Office 2016. Vous voyez le probleme arriver, un jour une personne a utilisé l'application sous office 2016, la référence "Word Application 14" a été remplacée automatiquement par la référence "Word Application 16" et depuis on ne peut plus utiliser le fichier sous Office 2010 sans modifier manuellement la référence car la référence "Word Application 16" n'est pas reconnu par Office 2010.J'ai essayé la solution ici : https://forum.excel-pratique.com/viewtopic.php?t=129117

Mais ca ne marche pas car j'ai besoin des références pour faire fonctionner mon application.

Une solution pour cette période transitoire ? Est-ce possible d'automatiser la selection d'une référence via macro ? Du genre, si l'application detecte qu'on utilise Office 2010, elle decoche la référence "Word Application 16" si elle existe et coche "Word Application 14".

Merci d'avance !

Lucas

Bonjour,

Une bonne solution pour cela est de coder en late binding. Les variables sont déclarées en tant qu'objet et on n'a aucune référence à une quelconque bibliothèque à cocher.

Je te laisse chercher avec ces mots clé "late binding", tu vas vite trouver ce que tu veux, ça ne change pas grand chose au fond.

Bonjour,

Merci pour ta réponse.

J'ai modifié mon code pour le mettre en late binding. Effectivement ça marche... presque.

L'ouverture du document "WordDoc" ainsi le remplissage des signets et l'enregistrement fonctionne jusqu'a l'enregistrement en .pdf qui plante à cette ligne :

WordDoc.ExportAsFixedFormat outputFileName:=chemindest & ChronoPV & ".pdf", Exportformat:=wdExportFormatPDF

Cela me marque "Erreur 5, appel de procédure incorrect". Je précise que si j'active la référence "Word Application 14" cela fonctionne, cette ligne refonctionne à nouveau.

Ahhhhhh

Je suis passé il y a tout juste quelques mois par toutes les étapes que tu traverses là, ça rappelle le bon vieux temps ^^

En late binding, ça plante effectivement comme ça. Ne me demande pas pourquoi, je ne suis pas monté à ce degré de compréhension. Mais remplace ton code par celui-là et ça devrait marcher ;)

WordDoc.SaveAs Filename:=chemindest & ChronoPV & ".pdf", FileFormat:=17

De ce que j'imagine, Output et Export font appel à des instances externes à Excel, qu'il n'est pas capable de comprendre, les librairies n'étant pas cochées ... Mais je n'en ai pas la certitude.

Effectivement, ça marche :D

Je vérifierais que j'ai pas de problème de compatibilité entre 2010 et 2016 et si je ne reviens pas sur ce forum c'est que tout fonctionne !

Merci encore :)

Euh non, ce qui serait bien, c'est que tu reviennes pour marquer ce sujet comme résolu 😉

Rechercher des sujets similaires à "gestion references word application entre versions"