automatiser "enregistrer sous" d'anciens fichiers Word

Ça demande un peu d'analyse (surtout que chez moi ça fonctionnait sans problème) j'y reviendrai plus tard...
Me revoilà, avec une version modifiée du script dont j'espère que, cette fois, elle fonctionnera sans problème. Je ne suis pas sûr d'avoir totalement compris la cause des problèmes, mais il m'a semblé que c'était lié au découpage en lignes. J'ai donc essentiellement réduit les paramètres pour que les instructions soient plus courtes. Il m'a semblé que c'étaient uniquement des paramètres par défaut et que ça ne devrait pas avoir de conséquence mais ça peut varier selon le contexte exact. À vérifier, donc…

Bloc de code:
set inputfolder to (choose folder) as text
set destFolder to (choose folder) as text
set theFiles to list folder inputfolder without invisibles
activate application "Microsoft Word"

repeat with x from 1 to count of theFiles
	set thefile to item x of theFiles
	set inputfile to (inputfolder & thefile)
	tell application "Microsoft Word"
		do Visual Basic "Documents.Open FileName:=\"" & inputfile & "\""
		do Visual Basic "Documents(\"" & thefile & "\").SaveAs FileName:=\"" & destFolder & thefile & ".doc" & "\", FileFormat:= wdFormatDocument"
		close document 1 saving no
	end tell
end repeat

Au besoin, faire en sorte que l'insctruction pour l'enregistrement fasse bien une seule ligne une fois collée dans l'éditeur AppleScript.

Allez, dans le doute, je joins carrément le script.

À noter : l'ajout de l'extension .doc lors de l'enregistrement est peut-être inutile (je l'ai mise "dans le doute", parce que ça peut éventuellement varier selon la version de Mac OS X et les réglages). Il est facile de supprimer la séquence & ".doc" dans la ligne concernée...
 
Dernière édition:
  • J’aime
Réactions: garkadin
Aliboron, merci une nouvelle fois de persister (et merci pour le script!).

Je viens de faire un nouvel essai avec 5 fichiers (regroupés dans un dossier "anciensWord") avec pour cible un dossier "nouveauxWord".

Apparaît un premier message : "nom ambigu détecté : TmpDDE",
puis un second message :
"Erreur d'Apple Script
Erreur dans Microsoft Word :"
avec la ligne suivante du script qui apparaît en même temps grisée :
"do Visual Basic " Documents.Open FileName:=\"" & inputfile & "\""

J'ai réessayé une deuxième fois en renommant mes 5 fichiers A, B, C, D et E, à tout hasard.
Même résultat.

Désolé… Merci… Et surtout si ça te prend trop de temps, laisse tomber…
 
Je viens de faire un nouvel essai avec 5 fichiers (regroupés dans un dossier "anciensWord") avec pour cible un dossier "nouveauxWord".

Apparaît un premier message : "nom ambigu détecté : TmpDDE",
puis un second message :
"Erreur d'Apple Script
Erreur dans Microsoft Word :"
avec la ligne suivante du script qui apparaît en même temps grisée :
"do Visual Basic " Documents.Open FileName:=\"" & inputfile & "\""

J'ai réessayé une deuxième fois en renommant mes 5 fichiers A, B, C, D et E, à tout hasard.
Même résultat.
Honnêtement, là, je ne vois pas. J'ai même essayé, dans le doute, en récupérant le script zippé de mon précédent message et ça fonctionne du premier coup. Les dossiers que j'utilise sont sur le bureau (mais ça m'étonnerait bien que ça joue)…

Est-ce qu'on utilise bien la même version de Word v.X ? En ce qui me concerne, tout est bien à jour, donc Office est en 10.1.9 et Word plus précisément est en 10.1.8 (060901). est-ce bien le cas chez toi ? Peut-être la version de Mac OS X (et donc d'AppleScript) puisque tu es avec Leopard et moi Snow Leopard…
 
Euh... Bêtement, je ne sais pas comment identifier ma version d'Office...
 
Euh... Bêtement, je ne sais pas comment identifier ma version d'Office...
Le plus simple : tu vas dans /Applications/Microsoft Office X, tu fais un clic droit sur l'icône de Word et tu demandes "Lire les informations"… tu y verras l'indication "Version :"

Méthode plus "pro" : dans /Applications/Microsoft Office X/Office, tu fais un clic droit sur Microsoft Component Plugin et tu demandes "Lire les informations".

Si jamais ta version devait ne pas être à jour, tu peux toujours télécharger la mise à jour 10.1.9 sur cette page. Pense à faire une réparation des autorisations avant (et après). C'est de toute façon une mise à jour indispensable à faire. Mais rien ne dit que ça va résoudre le problème que tu rencontres avec AppleScript.
 
Après mise à jour (au passage merci pour la page et le chemin vers les infos), l'essai est à nouveau un échec.

Je reprends :
ouverture de Word, ouverture du script, clic sur "exécuter", choix du dossier d'origine, choix du dossier d'arrivée… et messages d'erreur décrits dans le post précédent.

Nouvelle info? : j'ai fait un autre essai à tout hasard, mais cette fois sans avoir ouvert Word au préalable. Le message d'erreur (dans Apple script) cette fois est :

Erreur d'Applescript
Erreur dans Microsoft Word : " Documents.Open FileName:=\"Macintosh HD:Users:[mon nom d'utilisateur] Desktop:anciensWord:[nom du premier fichier du dossier]\"" ne comprend pas le message do Visual Basic.

Si ça peut te donner un nouvel indice…

ps. Les 2 dossiers que j'utilise sont aussi sur le bureau…
 
Dernière édition:
ouverture de Word, ouverture du script, clic sur "exécuter", choix du dossier d'origine, choix du dossier d'arrivée… et messages d'erreur décrits dans le post précédent.
Vraiment je ne vois pas, chez moi les mêmes manips donnent le résultat attendu. Assure-toi que dans le chemin d'accès il n'y a pas de lettres accentuées ou de caractères réservés. Donc en particulier le nom du disque dur et du compte utilisateur (il n'y a en principe rien d'autre)… Tu peux éventuellement regarder dans le bas de la fenêtre de l'éditeur AppleScript en cliquant sur "réponses". Ça affichera les différentes étapes de l'exécution du script et te permettra (peut-être) de localiser un peu mieux l'origine du problème...

j'ai fait un autre essai à tout hasard, mais cette fois sans avoir ouvert Word au préalable. Le message d'erreur (dans Apple script) cette fois est :
.../... Microsoft Word .../... ne comprend pas le message do Visual Basic.
C'est pour éviter ça, justement, qu'il est nécessaire de lancer Word v.X d'abord.
 
OK, je vais examiner ces derniers détails…

En tout cas, thanks a lot, et je pense que ce script profitera à d'autres…
C'est frustrant mais ça va aller…
 
Bonjour,
je viens d'essayer avec ma version (*), le script a bien fonctionné en dehors de quelques fichiers
que Word a refusé d'ouvrir ( il n'avançait pas donc j'ai du le tuer ) ou de sauver en indiquant que
le nom fourni était incorrect, donc j'ai rajouté un try

Bloc de code:
set inputfolder to (choose folder) as text
set destFolder to (choose folder) as text
set theFiles to list folder inputfolder without invisibles
activate application "Microsoft Word"

repeat with x from 1 to count of theFiles
	set thefile to item x of theFiles
	set inputfile to (inputfolder & thefile)
	try
		tell application "Microsoft Word"
			do Visual Basic "	Documents.Open FileName:=\"" & inputfile & "\""
			do Visual Basic "	Documents(\"" & thefile & "\").SaveAs FileName:=\"" & destFolder & thefile & ".doc" & "\", FileFormat:= wdFormatDocument"
			close document 1 saving no
		end tell
	end try
end repeat

Voilà quelques noms qui ont provoqués une erreur à la sauvegarde ( mais d'autres similaires sont passés :-~ )
> Dev 5. n° 11 - 3 décembre 97
> Dev. N° 13-14 - 24 janvier 94.bak
> Dev. n° 10 - 13 décembre 93.bak
> Dev. n° 10 - 9 décembre 97.bak
> Dev. n° 11 - 13 janvier 95.bak
> Dev. n° 11-12 - 10 janvier 94
> Dev. n° 12 - 19 décembre 96.bak
> Dev. n° 12 - 20 janvier 95.bak
> Dev. n° 12 - 21 janvier 94.bak
> Dev. n° 12 -bis - 22 février 93
> Dev. n° 13 - 27 janvier 95.bak
> Dev. n° 13-14 - 24 janvier 94
> Dev. n° 13-14- 28 janvier 94
> Dev. n° 14 - 26 janvier 96.bak
> Dev. n° 14 - 31 janvier 95.bak
> Dev. n° 15-16 -11 février 94
> Dev. n° 15bis - 25 février 98
> Dev. n° 16 - 14 février 94.bak
> Dev. n° 16 - 28 février 95.bak
> Dev. n° 16 - 30 janvier 97.bak
> Dev. n° 2 - 15 novem. 93.bak
> Dev. n° 20-21 - 11-18 avril 94
> Dev. n° 21 - 25 avril 95.bak
> Dev. n° 22-23 - 16 mai 94.bak
> Dev. n° 23 - 5 mai 98
> Dev. n° 3 - décembre 93.bak
> Dev. n° 3 - 7 octobre 94.bak
> Dev. n° 4 - 24 janvier 94.bak
> Dev. n° 5 - 21 octobre 97.bak
> Dev. n° 6 - 21 février 94.bak
> Dev. n° 6 - 22 novembre 93.bak
> Dev. n° 7(bis) - 24 novembre 95

(*) pour info, c'est bien celle d'origine, ie. 10.0.0(1316) :-)
 
  • J’aime
Réactions: garkadin
Merci osnola…

Résultat : "nom ambigu détecté : TmpDDE". (j'ai changé mes noms de ficheirs en A, B, C etc. pareil…)

Suis-je maudit? :modo:

---------- Nouveau message ajouté à 16h28 ---------- Le message précédent a été envoyé à 15h50 ----------

:)

@osnola
@Aliboron

En googlisant "TmpDDE", malgré mon niveau de compétence proche du néant, j'ai fini par trouver trace d'un vieil article du support Microsoft où il était question de macro…

Bref, dans Word : Outils > Macro > Macros…

… et LÀ, je découvre une macro TmpDDE (qui est arrivée là Dieu sait comment) que je supprime illico.

Les essais faits depuis avec vos deux scripts, cher osnola et Aliboron, fonctionnent impeccablement.

Un grand MERCI! à vous deux pour votre patience, et désolé de ne pas avoir eu ce réflexe plus tôt!

J'espère / je pense que ce script pourra être utile plein d'autres, j'espère qu'ils tomberont sur ce forum…

Je suppose que je peux désormais clore le sujet… ?


ps. Si vous pouviez écrire aussi un script qui donne le sens de la vie, je suis preneur!
 
  • J’aime
Réactions: Aliboron
Résultat : "nom ambigu détecté : TmpDDE". (j'ai changé mes noms de ficheirs en A, B, C etc. pareil…)
Pour exécuter les macros envoyées par l'instruction Do Visual Basic, Word ajoute au document "Normal" un module "TmpDDE" dans lequel il colle la macro le temps de l'exécution. Dans ton cas, il se peut qu'un des plantages du début ait eu pour conséquence l'enregistrement de ce module dans le document "Normal". Du coup, cela rendait impossible la création d'un nouveau module de même nom à la même place. C'est vrai que tu avais déjà signalé ça précédemment et ça m'avait alerté mais comme on n'est pas sensé enregistrer le document "Normal" après un plantage, je pensais que ce n'était que temporaire. Désolé !

pour info, c'est bien celle d'origine, ie. 10.0.0(1316) :-)
Très, très, très mauvaise idée que de ne pas mettre à jour ses applications, Office probablement encore plus que d'autres, et les versions sorties au début de Mac OS X encore, encore plus. Le lien vers la mise à jour "finale" en 10.1.9 est dans un des messages précédents.
 
Pas de quoi être désolé, vraiment…
 
Bonjour, j'essaye d'utiliser votre script pour automatiser la conversion de vieux fichiers word. Le zip en p.j. n'existe plus. Mais surtout, lorsque je colle votre script dans applescript, impossible de le compiler, j'ai une erreur de syntaxe dans la première ligne do Visual Basic.
Apparemment vous avez réussi à vous en servir, donc je ne comprends pas. Est-ce que vous avez une explication ?
merci
phimercier
 
bonjour phimercier,

Désolé pour le délai de réponse.

Je ne suis pas assez spécialiste pour avoir un avis sur le problème de compilation que tu décris.
As-tu lu l'ensemble de la discussion, ce problème est peut-être évoqué en amont...?

Sinon, j'essaie de renvoyer le script en pièce jointe, mais je n'y parviens pas (la possibilité n'est pas donné par le forum – cf "règles de messages" en bas de la page de discussion – je ne comprends pas pourquoi…).

Juste un détail à tout hasard : pour que le script fonctionne, il faut l'ouvrir depuis une machine sur laquelle est installée une version de Word qui permet d'ouvrir les anciens fichiers…
Dans mon cas, j'ai un portable sous Lion avec la dernière version de Word qui ne peut pas ouvrir les anciens fichiers. Celui-là ne me sert à rien pour la conversion.
J'ai une autre machine équipée d'une ancienne version de Word qui elle peut ouvrir les anciens fichiers. C'est avec cette machine que j'utilise le script de conversion.
Et ensuite je transfère les fichiers convertis sur le portable et je les ouvre avec le Word plus récent.

Bon courage.