Voici une macro permettant de faire le travail :
Public Sub conversion()
'macro écrite par m@rina
'convertit des fichiers doc en fichiers docx
'et supprime les fichiers doc si nécessaire
Dim vFichier As Variant
Dim NbFichOK As Integer
Dim Nom As String
' Sélection des fichiers
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = True
.Title = "Sélectionner les fichiers à traiter"
.Filters.Add "documents 2003", "*.doc"
If .Show <> -1 Then Exit Sub
If MsgBox(.SelectedItems.Count & " fichiers à traiter ", vbOKCancel, "continuer ?") = vbCancel Then Exit Sub
End With
' ouverture du fichier
For Each vFichier In fd.SelectedItems
On Error GoTo Suivant
Application.Documents.Open vFichier
On Error GoTo Fermer
NbFichOK = NbFichOK + 1
'nouveau nom
Nom = vFichier & "x"
'enregistre au format docx et ferme
Documents(vFichier).SaveAs2 FileName:=Nom, FileFormat:=wdFormatXMLDocument, CompatibilityMode:=15
Documents(Nom).Close
Fermer:
On Error GoTo Suivant
Suivant:
On Error GoTo 0
'supprimer l'apostrophe avant Kille vFichier si vous voulez supprimer les fichiers d'origine
' Kill vFichier
Next vFichier
'fin
MsgBox ("Fichiers convertis : " & NbFichOK & " Fichiers")
Set fd = Nothing
End Sub
Récursivité
Si vous souhaitez convertir tous les fichiers DOC se trouvant dans un certain nombre de sous-dossiers, et les réenregistrer dans ces mêmes sous-dossiers, et ceci en une seule opération, voici comment procéder :
Dans la macro, remplacez Nom = vFichier & "x" par Nom = ActiveDocument.FullName & "x"
Ensuite, lorsque le message vous demande quels sont les fichiers à convertir, faites une recherche dans le dossier principal, avec *.doc. Ainsi tous les fichiers avec extension *.doc seront trouvés. À titre d'info, si vous avez un mélange de doc et de docx, tapez *.doc - *.docx pour faire une sélection uniquement sur les *.doc.
Ainsi vous retrouverez tous vos fichiers Word en deux versions dans vos différents sous-dossiers.