Convertir 25000 fichier de doc à docx

Résolu/Fermé
AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020 - 24 avril 2020 à 21:45
AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020 - 27 avril 2020 à 14:32
Bonjour,
J’ai environ 25.000 fichiers doc, docx, pdf, tif, jpg, etc, mélangés dans une bibliothèque comprenant 75 sous bibliothèques, elles-mêmes comprenant jusqu’à 5 niveaux de sous-sous (…) bibliothèques.
Je voudrais uniformiser mes fichiers en convertissant en fichiers « docx » (word 2013) tous les fichiers « doc » (environ 20.000) qui se trouvent partout. Car certains logiciels travaillent bien sur les fichiers « docx » et moins bien sur les fichiers « doc ».
Je ne peux évidemment pas prendre chaque fichier pour le convertir à la main, un à un.
Je crois avoir trouvé un truc en utilisant BatchMacro.
Pour cela, il faut que je crée d’abord ma macro de conversion.
J’ouvre un fichier « JeanMartin.doc » et je crée une macro de conversion en faisant F12.
Mais dans la macro de conversion, j’ai le nom du fichier à partir duquel j’ai créé la macro :
ActiveDocument.SaveAs2 FileName:="JeanMartin.docx". Donc tous les fichiers convertis par ma macro vont s’appeler "JeanMartin.docx". C’est pas génial !
Existe-t-il un code VBA qui signifie de manière générique :
ActiveDocument.SaveAs2 FileName:=[le même nom de fichier].docx ?
Question basique de la part d’un nul.
Merci beaucoup.
Auguste

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
25 avril 2020 à 08:43
Bonjour,

faire une boucle sur tous les fichiers doc d'un répertoire

Sub BoucleFichiers()
  Dim Chemin As String, Fichier As String
  Chemin = "C:\Users\Auguste\Dossier_Word\" 'adapter le chemin du répertoire
  Fichier = Dir(Chemin & "*.doc")
      Do While Len(Fichier) > 0
    MsgBox Chemin & Fichier 'affiche le chemin complet du classeur sers toi de ces variables
  'ta macro de conversion
    Fichier = Dir()
  Loop
End Sub

0
AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020
25 avril 2020 à 13:12
Merci beaucoup cs_Le Pivert d'avoir pris le temps de me répondre. Mais le problème, c'est que je suis complètement nul.
Je ne sais pas unir ta macro avec la macro qui consiste à faire F12:
Sub F12()
'
' F12 Macro
'Pour fichier = EL320.doc
'
ChangeFileOpenDirectory "C:\DossierCible\"
ActiveDocument.SaveAs2 FileName:="EL320.docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=15
End Sub

Merci beaucoup de bien vouloir m'aider.
Auguste
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020
25 avril 2020 à 13:48
Ce que tu veux faire n'est pas réalisable sur 20000 fichiers. Cela demande l'ouverture de chaque document pour pouvoir le convertir en docx!

ActiveDocument.SaveAs2 FileName


cette ligne de code signifie que tu travailles sur le document actif donc ouvert.

je peux pourtant te répondre sur cela:

[le même nom de fichier].docx ?

Sub BoucleFichiers()
  Dim Chemin As String, Fichier As String
dim nouveau As String
  Chemin = "C:\Users\Auguste\Dossier_Word\" 'adapter le chemin du répertoire
  Fichier = Dir(Chemin & "*.doc")
      Do While Len(Fichier) > 0
    MsgBox Chemin & Fichier 'affiche le chemin complet du classeur sers toi de ces variables
 nouveau = Split(Fichier, ".") (0)
nouveau = nouveau & ".docx"

'ta macro de conversion
    Fichier = Dir()
  Loop
End Sub


Voilà
0
AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
25 avril 2020 à 16:48
Merci beaucoup. Mais je suis trop nul pour savoir comment intégrer "ma macro de conversion" qui n'est autre que le F12 de word. Ce sont 20000 fichiers d'archive dont je me sers en permanence. Un ami, aujourd'hui disparu, me les avait déjà convertis de word2 à word 2003 en une nuit. Du coup je pensais qu'il fallait faire une bidouille qui prenne automatiquement chaque fichier pour le convertir en word 2013. Par ailleurs, tous mes noms de fichiers sont sous forme de date avec un ajout après un point: EL221215.01D.doc. Il y a donc 2 points dans le nom.
Cordialement
Auguste
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020
Modifié le 25 avril 2020 à 17:55
Quand je lis cela, je peux te donner le programme que j'ai fait suivant ce site:

https://www.developpez.net/forums/i1104689/logiciels/microsoft-office/excel/macros-vba-excel/conversion-docx-doc/

Un ami, aujourd'hui disparu, me les avait déjà convertis de word2 à word 2003 en une nuit.

Tu dezippes, tu ouvres le dossier Conversion_doc dans lequel se trouve un classeur nommé Conversion_word , un dossier Destination_docx et 4 documents Word pour faire les essais. tu verras le temps mis pour 4 documents!

ensuite il ne te restera qu' a faire tes documents par petit groupe

voilà le zip à télécharger:

https://www.cjoint.com/c/JDzpyjuIGqQ

Bon courage

J'ai oublié de te dire d'allez dans Outils, Références et de cocher Microsoft Word




@+ Le Pivert
0
AugusteHugueny Messages postés 4 Date d'inscription jeudi 2 novembre 2017 Statut Membre Dernière intervention 27 avril 2020 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
27 avril 2020 à 14:32
Bonjour cs_Le Pivert, J'ai un peu tardé à répondre car je voulais d'abord voir si j'arrivais à faire ce que tu m'as proposé. Cela marche magnifiquement et je ne sais comment te remercier d'avoir pris du temps et de m'avoir partagé ta création. Je n'aurais pas pu y arriver sans cela.
Avec reconnaissance.
Auguste
0