Convertir plusieurs fichiers EXCEL (xlsx) au format (PDF)

Résolu
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -  
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans un répertoire à sélectionner , j'ai plusieurs fichiers au format xlsx.

Ces fichiers ont une seule feuille avec le même nom. Chaque fichier fait 78 ko.

Exemple :

113134.xlsx
463164.xlsx
657426.xlsx

Je souhaite par vba, sélectionner un répertoire et convertir tous les fichiers au format pdf.

Résultat souhaité :

113134.pdf
463164.pdf
657426.pdf

Merci d'avance,

Configuration: Windows / Firefox 78.0

2 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    pourquoi passer par un code compliqué alors qu'Excel le fait en deux clics
    il, suffit d'ouvrir le fichier puis
    Fichier/Enregistrer sous/dans Type choisir PDF(*.pdf) et pointer sur le répertoire d'enregistrement choisi
    1
    1. PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
       
      Bonjour Mike-31,

      Je réceptionne une centaine de fichiers par jour déposés, dans un répertoire.
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    mettre ce code dans un module et l'associer à un bouton ou un raccourci clavier:

    Option Explicit
    Sub BoucleFichiers()
        Dim Chemin As String, Fichier As String
     Dim nom As String
        'Définit le répertoire contenant les fichiers
        Chemin = ThisWorkbook.Path & "\" ' a adapter
      'Boucle sur tous les fichiers xlsx du répertoire.
        Fichier = Dir(Chemin & "*.xlsx")
     Do While Len(Fichier) > 0
        Workbooks.Open Chemin & Fichier
        With ActiveSheet
            nom = Replace(Fichier, "xlsx", ".pdf")
            .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & nom, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        End With
        Workbooks(Fichier).Close SaveChanges:=False
            Fichier = Dir()
        Loop
    End Sub
    


    mettre le classeur enregistré en xlsm dans le même dossier que les classeurs à convertir
    1
    1. PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
       
      Bonjour cs le pivert,

      C'est parfait ! comme d'habitude....

      Merci !
      0