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