Fichiers Excel dans un dossier à passer en PDF

Bonjour,

Je cherche un code d'une macro VBA pour passer tous les fichiers Excel (extension xlsx) d'un dossier dans un autre dossier en les convertissant au format PDF.

Dans le fichier Excel seule la première feuille est complétée (le nom de la feuille est le même que le nom du fichier Excel)

Merci de votre aide.

Sandrine.

Bonjour

C'est une question récurrente sur le forum où vous pouvez trouver des solutions validées par les demandeurs via la fonction Recherche.
Je vous remets ce que j'ai écrit ce matin pour une même demande

Voici celle que j'ai proposée il y a quelques jours --> https://forum.excel-pratique.com/s/goto/1226353 qui sauvera la feuille active dans le répertoire où se trouve votre fichier.
Si vous voulez un autre répertoire, il vous suffit de changer l'adresse dans la ligne --> repertoire = ....
La différence étant que le nom du fichier pdf reprend le nom de la feuille et la date du jour

Cordialement

Bonjour,

Je viens de regarder les codes dans le forum que vous m'avez envoyé mais dans mon dossier j'ai par exemple 20 fichiers Excel à convertir en 20 feuilles PDF différentes sans ouvrir un par un mes fichiers Excel.

Le code dans le forum de discussion correspond plutôt à convertir en PDF un fichier Excel ouvert ?

Merci.

Bonjour

Le code dans le forum de discussion correspond plutôt à convertir en PDF un fichier Excel ouvert ?

Avec ce code oui mais vous devez placer le code dans chaque fichier
Mais il faut adapter le code si l'on veut qu'il soit exécuté sur le fichier ouvert
On peut aussi placer le code dans un fichier bidon.
De là vous ouvrez chaque fichier 1 par 1 puis vous exécutez le code

Comment voulez-vous procéder ou plutot quel serait la manière dont vous voulez procéder


Edit : donnez-moi le répertoire de sauvegarde. Je vais adapter le code.

Le but est de ne pas ouvrir mes fichiers Excel.

Dans l'idéal j'aimerais une macro ou je dois juste changer le nom de mon dossier, mettre le nom du dossier avec les tous les fichiers Excel et en cliquant sur la macro qu'elle me convertisse tous les fichiers du dossier indiqué en PDF (un fichier = un PDF) dans un autre dossier ou je modifierai également l'emplacement dans la macro.

En espérant avoir été plus clair.

Merci.

Le but est de ne pas ouvrir mes fichiers Excel.

Hum...çà j'avais compris

Pour vous expliquer.
On place le code dans un fichier une fois pour toute et on met un bouton pour exécuter le code
Ensuite :
1. Vous cliquez sur le bouton pour exécutez le code. Le codei va vous demander de choisir le fichier à convertir
2. une fois le choix fait, le code convertit la feuille en PDF du fichier ouvert puis referme le fichier

L'idée simple est que vous répétez le code pour chaque fichier à convertir.

Comme demandé dans mon post précédent, il faudrait que vous me donniez le répertoire de sauvegarde des fichiers convertis en PDF
Après je vous poste le code

J'aimerais un code avec la possibilité de changer le nom de dossier car je ne veux pas le mettre uniquement sur un dossier en particulier, ce code pourrait m'être utile dans plusieurs dossiers.

Merci.

re

J'aimerais un code avec la possibilité de changer le nom de dossier

Ce n'est pas clair. C'est le dossier de sauvegarde du PDF dont vous parlez ?
Ouvrir le fichier XLSX n'est pas un souci, j'ai prévu que le code vous demande où allez chercher le ou les fichiers à convertir.
Par contre c'est le répertoire du dossier du PDF que je dois savoir ou alors on part sur la base que le PDF est sauvegardé dans le dossier où se trouve le fichier XLSX à convertir. Ce qui est d'ailleurs le plus direct et le plus simple à gérer pour retrouver vos fichiers

Oui nous pouvons partir sur la base que le PDF est sauvegardé dans le dossier où se trouve les fichiers XLSX à convertir.

Je vous remercie.

Oui nous pouvons partir sur la base que le PDF est sauvegardé dans le dossier où se trouve les fichiers XLSX à convertir.

Pour plus de facilité voici un fichier joint dans lequel vous trouverez deux codes qui effectuent les opérations ci-dessous selon le choix du bouton

A. Bouton Bleu :
1. Ouverture boite de dialogue pour choisir le fichier XLSX à convertir en PDF
2. Ouvre le fichier choisi
3. Conversion de la feuille active du fichier ouvert
4. ferme le fichier une fois la feuille sauvée en PDF

le code :

Sub Convertir_PDF()
Dim repertoire As String, nomfichier As String
Dim ws As Worksheet
Dim fichier, selectedfiles
Dim wbxlsx As Workbook

fichier = Application.GetOpenFilename(FileFilter:="XLSX Files (*.XLSX), *.XLSX", MultiSelect:=False) 'choix du fichier
If fichier = False Then Exit Sub 'si pas de choix on sort du code

Set wbxlsx = Workbooks.Open(fichier)
Set ws = wbxlsx.ActiveSheet
repertoire = ThisWorkbook.Path & "\" 'repertoire de sauvegarde eventuellement à adapater
nomfichier = ws.Name & "_" & Format(Now, "yyyy-mm-dd") 'nom fichier

ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=repertoire & nomfichier & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False 'sauvegarde PDF

wbxlsx.Close False 'fermeture fichier apres conversion feuille en pdf
End Sub


B. Bouton Brun :

1. Ouverture boite de dialogue pour la sélections de tous les fichiers XLSX à convertir
2. Ouvre le premier fichier sélectionné
3. Conversion de la feuille active du fichier ouvert
4. ferme le premier fichier sélectionné une fois la feuille sauvée en PDF
5. Ouvre le deuxième fichier sélectionné puis mêmes actions que les points 3 et 4
etc...

le code :

Sub Convertir_lot_PDF()
Dim repertoire As String, nomfichier As String
Dim ws As Worksheet
Dim fichier, selectedfiles
Dim wbxlsx As Workbook

selectedfiles = Application.GetOpenFilename(FileFilter:="XLSX Files (*.XLSX), *.XLSX", MultiSelect:=True)

If IsArray(selectedfiles) Then
    For Each fichier In selectedfiles
        Set wbxlsx = Workbooks.Open(fichier)
        Set ws = wbxlsx.ActiveSheet
        repertoire = ThisWorkbook.Path & "\" 'repertoire de sauvegarde à éventuellement à adapter
        nomfichier = ws.Name & "_" & Format(Now, "yyyy-mm-dd") 'nom fichier

        ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=repertoire & nomfichier & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False 'sauvegarde PDF

        wbxlsx.Close False 'fermeture fichier apres conversion feuille en pdf
    Next fichier
End If
End Sub

Chaque PDF est sauvegardé dans le répertoire du(es) fichier(s) pour lequel (lesquels) vous avez demandé la sauvegarde en PDF

Le fichier à utiliser et à placer dans le même dossier que celui de vos fichiers excel XLSX

Crdlt

Merci beaucoup

J'ai bien testé la macro, elle fonctionne mais le nom du PDF reprend le nom de ma feuille 1 Excel.

J'aimerais que le nom de mon PDF soit identique au nom du fichier Excel.

Merci.

J'aimerais que le nom de mon PDF soit identique au nom du fichier Excel.

dans le code : remplacez cette ligne

nomfichier = ws.Name & "_" & Format(Now, "yyyy-mm-dd") 'nom fichier

par ceci

nomfichier = Split(wbxlsx.Name, ".")(0) & "_" & Format(Now, "yyyy-mm-dd") 'nom fichier

Cordialement

Parfait, cela fonctionne très bien.

Merci

Rechercher des sujets similaires à "fichiers dossier passer pdf"