Création PDF en fonction d'une valeur
Bonjour à toutes et à tous.
J’ai un fichier XLSm qui contient plusieurs feuilles. Chacune de ces feuilles contient des données de différents types, mais chaque feuille contient un champ qui les relie (identifiant).
La dernière feuille de mon fichier est une fiche qui me permet de voir rapidement l’ensemble des informations contenue dans chacune des feuilles en fonction d’une valeur entrer dans la cellule B1 (La fonction Vlookup extrait les informations dans chacune des feuilles)
Je cherche à créer de façon automatique un PDF pour chacune des valeurs possibles de la cellule B1 et que le PDF soit nommé selon la valeur B1
Ces valeurs sont contenue la feuille « Piezo_gestion » colonne A
J’ai besoin de votre aide car je suis complètement largué !
Merci de votre support
Bonjour La_baie_1976
Voici une possibilité de code à utiliser
Sub Print_PDF()
Dim dLig As Long, Lig As Long
Dim Sht As Worksheet
Dim sNomFiche As String, sPath As String
' Chemin d'enregistrement des PDF par défaut
sPath = "G:\Environnement\SIG - GIS\Traitement\"
' Définir la feuille qui contient les données à sélectionner
Set Sht = ThisWorkbook.Sheets("Piezo_gestion")
' Dernière ligne de la feuille
dLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
' Pour chaque ligne
For Lig = 2 To dLig
' Avec la feuille à imprimer
With ThisWorkbook.Sheets("OUTIL")
' Récupérer la référence
sNomFiche = Sht.Range("A" & Lig).Value
' Inscrire la référence
.Range("B1").Value = sNomFiche
' Lancer l'impression de la feuille sous le nom
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sNomFiche & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End With
Next Lig
' Effacer les variables objet
Set Sht = Nothing
End Sub@+
Un très gros merci BrunoM45. Ca fonctionne à merveille :)
Je commence à faire du VBA.
Je vais me faire un plaisir de décortiquer ton code pour bien comprendre comment il fonctionne et ainsi avancer dans ma compréhension du VBA.
Salutations
Re,
Si ma réponse te convient, merci d'indiquer que c'est la solution en cliquant sur le signe validé
Edit : opus c'est fait, je suis allé trop vite
@+