VBA - Macro sauvegarde à tord un fichier toto.docx en format 2003 sous word 2007

Résolu
cywal Messages postés 2 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 9 juillet 2010 - 8 juil. 2010 à 21:48
cywal Messages postés 2 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 9 juillet 2010 - 9 juil. 2010 à 10:09
Bonjour à tous,

J'ai créé une macro VBA qui tournait sous word 2003 dans un fichier macro.doc.

J'ai installé office 2007, convertit mon fichier macro.doc au format 2007, il s'appel désormais macro.docm.

La macro fonctionne parfaitement en utilisant des modèles 2003(.dot) qui me permettent de générer des fichiers au format 2003(.doc).

J'ai ensuite convertit mes modèles .dot 2003 en .dotx 2007 puis modifié la macro pour que les fichiers cibles générés soient en extension .docx.

Problème, les fichiers cibles générés en .docx ne sont pas ouvrables sous word 2007 sauf si je les renommes en .doc.

Apparemment word 2007 via la macro génère à tord des fichiers au format 2003, pourtant le modèle utilisé est un dotx au bon format.

Voici mon code :

' Sauvegarde du fichier
ActiveDocument.SaveAs FileName:=LeNomDuFichier$, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", _
ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False

Je me demande si le problème ne vient pas de la constante de format "wdFormatDocument", y-a t-il une constante permettant de préciser la version de word dans laquelle le fichier doit-être sauvegardée ?

D'avance, merci pour vos suggestions.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 juil. 2010 à 00:01
Salut
Oui, tu as mis le doigt dessus.
Mais n'attends pas qu'on te sorte la solution : tu peux la découvrir toi même en enregistrant une macro pendant que tu enregistres un document bidon AVEC macro, donc "docm", ce qui donne un FileFormat = wdFormatXMLDocumentMacroEnabled
Voir l'enregistreur de macro pour plus de détails.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cywal Messages postés 2 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 9 juillet 2010
9 juil. 2010 à 10:09
Merci Jack.

Je donne la solution pour ceux que ça intéressent, le format doit être wdFormatXMLDocument pour un document word 2007.

wdFormatDocument correspond à un document 97-2003.
0
Rejoignez-nous