Word Macro - couleur + pdf

Bonjour à tous,

Je cherche à mettre en place une macro dans Word pour qu'elle traite tous les .docx d'un fichier pour :

- mettre la totalité du texte en noir

- enregistrer la modification

- enregistrer sous le document au format pdf dans le même dossier avec le même nom

Idéalement j'aimerais qu'aucun document ne s'ouvre. Mais je pense que ce n'est pas possible du fait de la première étape de changement de couleur.

Je débute en VBA, j'ai essayé de bricoler quelque chose mais ce n'est pas tout à fait concluant. Le fichier est bien ouvert, tout est sélectionné et pourtant j'ai un message d'erreur qui apparaît à la ligne de sélection me disant qu'un objet est requis.

Voici mon code :

Sub DisplaySheetsProtecClasseur()

    Dim fichier As Object
    'Dim FileName As String
    'Dim NameDOCX As String
    'Dim NamePDF As String
    Dim chemin As String
    'Dim WordDoc As String
    'NameDOCX = Name & ".docx"
    'NamePDF = Name & ".pdf"
    chemin = ThisWorkbook.Path
    'WordDoc = chemin & "\" & NameDOCX
    'PDFDoc = chemin & "\" & NamePDF
    Dim objWordApp As Object
    Set objWordApp = CreateObject("Word.Application")
    objWordApp.Application.ChangeFileOpenDirectory chemin

    Dim dossier As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    'identifier le dossier
    Set dossier = Fso.getfolder(chemin)

    Application.ScreenUpdating = False 'pour accélérer l'exécution de la macro, empêche la mise à jour de l'écran
    For Each fichier In dossier.Files 'pour chaque fichier
        If fichier.Path Like "*.docx" Then
            With objWordApp
                .Visible = True
                .Documents.Open fichier.Name
            End With
            With objWordApp.ActiveDocument 'avec le fichier en cours, ouvert à l'instant
                .Select.Range
                .Selection.Wrd.Font.Color = wdColorBlack
                .ExportAsFixedFormat OutputFileName:=fichier, ExportFormat:=wdExportFormatPDF
                .Close
            End With
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox ("Tous les documents sont enregistrés en pdf.")
End Sub

L'erreur apparaît à la ligne :

                .Select.Range

Pour la suite je ne sais pas encore si ça fonctionne...

Je vous remercie pour votre lecture et votre aide !

PS : J'ai fait un Edit à 17h16 parce que j'ai quand même bien avancé.

Bonjour à tous,

J'ai pu continuer à travailler sur mon projet.

J'ai construit une macro qui fonctionne lancée depuis Excel (il y a surement plus simple et plus propre). Mais ça fonctionne donc ça me convient !

Je glisse le code ici pour ceux que ça intéresse et je place le sujet en résolu.

A bientôt !

Sub WordenPDF()

    Dim fichier As Object
    Dim chemin As String
    chemin = ThisWorkbook.Path
    Dim nfichier As String, intpos As Byte
    'pour ouvrir Word car lancée depuis classeur Excel
    Dim objWordApp As Object
    Set objWordApp = CreateObject("Word.Application")
    objWordApp.Application.ChangeFileOpenDirectory chemin

    Dim dossier As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    'identifier le dossier
    Set dossier = Fso.getfolder(chemin)

    Application.ScreenUpdating = False 'pour accélérer l'exécution de la macro, empêche la mise à jour de l'écran
    For Each fichier In dossier.Files 'pour chaque fichier
        If fichier.Path Like "*.docx" Then
            With objWordApp
                .Visible = True
                .Documents.Open fichier.Name
            End With

            If objWordApp.ActiveDocument.ProtectionType = wdAllowOnlyRevisions Then
            objWordApp.ActiveDocument.Unprotect Password:="asp"
            End If

            'trouve la position de l'extension
            intpos = InStrRev(fichier.Name, ".")
            nfichier = Left(fichier.Name, intpos - 1)
            With objWordApp.ActiveDocument
                .Range.Select
                .Range.Font.ColorIndex = wdColorBlack
                .ExportAsFixedFormat OutputFileName:=nfichier, ExportFormat:=17, OpenAfterExport:=False '17 = PDF
                '.Save
                .Close
            End With
        End If
    Next

    Application.ScreenUpdating = True
    MsgBox ("Tous les documents sont enregistrés en pdf.")
End Sub
Rechercher des sujets similaires à "word macro couleur pdf"