Comment convertir 200 fichiers .dot en .doc ... - VB/VBA/VBS - Programmation
Marsh Posté le 29-02-2004 à 21:47:35
Et la commande DOS :
ren *.dot *.doc
ne pourrait-elle pas t'aider ?
(à moins qu'il faille impérativement du VBA )
Marsh Posté le 29-02-2004 à 22:58:05
chuis pas sûr que le format dot soit identique au format doc
Tu ajoutes la librairie Microsoft Scripting Runtime à ton projet de macro, puis tu utilises les objets FileSystemObject, Folder, Files et File qui sont alors à ta disposition.
Marsh Posté le 29-02-2004 à 23:18:57
drasche a écrit : chuis pas sûr que le format dot soit identique au format doc |
oups désolé Drasche mais tu as l'air bien plus calé que moi à ce sujet : c'est quoi FileSystemObject ? une référence à mes fichiers ?
Tu sais où je peux avoir des renseignements là dessus ? (en version "pour les nuls" si possible )
Marsh Posté le 29-02-2004 à 23:27:43
à mon avis tu trouveras pas mal de renseignements et d'exemples si tu fais une recherche là dessus, ne fusse que sur le forum
(sur FileSystemObject voulais-je dire)
Marsh Posté le 29-02-2004 à 23:41:06
drasche a écrit : à mon avis tu trouveras pas mal de renseignements et d'exemples si tu fais une recherche là dessus, ne fusse que sur le forum |
ben en fait j'avais déjà fais une recherche mais comme je ne savais pas sur quoi exactement j'ai un peu tatonné !
Mais avec le bon mot ("FileSystemObject" ) je devrais m'en sortir !
Merci
Marsh Posté le 01-03-2004 à 00:41:06
http://msdn.microsoft.com/library/ [...] Object.asp
Marsh Posté le 02-03-2004 à 09:08:52
Bonjour,
Une solution plutot simple (pas de filesystemobject, ca me semble imutile):
Sub from_Doc_to_Dot()
chemin = "C:\"
fichier = Dir(chemin & "*.doc" )
While Len(fichier) > 0
Documents.Open FileName:=chemin & fichier
ActiveDocument.SaveAs FileName:= _
chemin & Left(fichier, Len(fichier) - 3) & ".dot"
ActiveDocument.Close
fichier = Dir
Wend
End Sub
I.
Marsh Posté le 02-03-2004 à 11:49:17
itawa a écrit : Bonjour, |
Marsh Posté le 02-03-2004 à 11:59:49
itawa> t'es sûr que ça fait bien ce qu'on demande ton truc?
Marsh Posté le 02-03-2004 à 12:39:28
Nan je suis sur que ca marche pas, j'en ai oublie un morceau et j'ai mal lu l'ennonce de depart...
Mais sinon en dehors de la conversion, la boucle sur les fichier marche, alors en faisant un coup d'emregistreur de macro pour voir comment s'enregistre un fichier doc a partir d'un dot, et hop le tour est joue....
Marsh Posté le 05-03-2004 à 09:36:53
C'est bourrin comme technique, mais ça fonctionne :
With Application.FileSearch
.NewSearch
.TextOrProperty = "*.dot"
.LookIn = "Le_répertoire_où_sont_les_dot"
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
.Execute
Total = .FoundFiles.Count
For i = 1 To Total
strNomFichier = .FoundFiles(i)
Documents.Open strNomFichier
ActiveDocument.SaveAs Left(strNomFichier, Len(strNomFichier) - 1) & "c", wdFormatDocument
ActiveDocument.Close wdDoNotSaveChanges
Next
End With
Edit: Petite correction dans le SaveAs (c'est un Left et j'ai mal placé une parenthèse).
Oui, je suis sûr que ça marche.
C'est le paramètre wdFormatDocument qui fait qu'il sauve en *.doc.
Je remets toute la ligne pour reprendre facilement le chemin du fichier et c'est plus facile de changer juste une caractère.
Si j'avais voulu sauver en *.dot l'argument aurait été wdFormatTemplate
Marsh Posté le 05-03-2004 à 09:40:48
c'est moi ou ta procédure renomme des .dot en .doc, soit le contraire de ce qui est demandé?
Marsh Posté le 05-03-2004 à 10:13:45
merde, depuis le début j'ai compris le contraire
dyslexie powah
Marsh Posté le 29-02-2004 à 21:05:26
Salut à tous
Voilà mon pb :
Je désire convertir (pas à la main biensûr, avec une macro Word !!! ) 200 fichiers word au format .dot, en fichiers .doc.
Je sais qu'il faut faire un truc du genre :
Public Sub from_dot2doc()
Dim chemin As String
Dim fichiers As ???
Dim fichier As "fichier" '
chemin="c:\mon_répertoire\"
fichiers = référence au fichiers .dot situés dans chemin 'c'est là que le bas blesse !!!
For Each fichier In fichiers Do
ouvrir le fichier .dot
enregistrer en .doc
fermer fichier
Next fichier
End Sub
Bon c'est donc très simple comme macro ! je devrais avoir une réponse dans environ 1 seconde et demi vu le nombre de mecs qui taquinent en VBA sur sur forum !
Merci pour votre aide.
Message édité par sheridann le 29-02-2004 à 21:16:25
---------------
Shérida(n)² 19-148