Fusionner plusieurs feuille excel en un pdf

Messages postés
1
Date d'inscription
lundi 29 avril 2019
Statut
Membre
Dernière intervention
29 avril 2019
- - Dernière réponse : cs_Le Pivert
Messages postés
6298
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2019
- 29 avril 2019 à 11:58
Bonjour,

Je lance un appel à l'aide car je n'arrive vraiment pas a m'en sortir, je ne suis pas au top en vba...

J'explique mon problème :
A partir d'un classeur (Projection....) grâce à une boucle, j'édite une fiche d'inspection selon des valeurs saisie en inputbox et selon les resultats trouvés via un modèle sur une feuille d'un autre classeur et je les enregistre en pdf avec un nom précis.
Du coup, ca me créer des fichiers pdf (nombre qui est aléatoire) dans un dossier pour chaque élément passant dans la boucle.
Cependant j'aimerai que tout ces fichiers pdf n'en soit qu'un seul.
Alors j'ai pensé créer un pdf pour chaque feuille d'inspection, ensuite pouvoir les fusionner et après supprimer tout les pdf non-fusionné mais j'y arrive pas pour l'instant j'en suis qu'a la création du fichier pdf par fiche d'inspection.

Je vous colle mon code, ne soyez pas choqué c'est du VBA bas de gamme.


Set pj = Workbooks.Open("I:\GESTION\Projetction.xlsm")
Set cmd = pj.Worksheets("COMMANDE")

date_insp = Application.InputBox("Date à inscrire sur la fiche d'inspection ? (Format : JJ/MM/AAAA)", "Saisie date")
com_gene = Application.InputBox("Avez-vous un commentaire général pour l'ensemble de la gare ?", "Commentaire général")


Sheets("COMMANDE").Activate
While cmd.Cells(num_ligne, 14) <> "" And cmd.Cells(num_ligne, 6) = nom_gare

'On relève toutes les infos dans PROJET
ref_borne = Worksheets("COMMANDE").Cells(num_ligne, 12)
type_borne = Worksheets("COMMANDE").Cells(num_ligne, 11)
modele_borne = Worksheets("COMMANDE").Cells(num_ligne, 13)
num_borne = Worksheets("COMMANDE").Cells(num_ligne, 14)
moteur_gauche = Worksheets("COMMANDE").Cells(num_ligne, 16)
moteur_droit = Worksheets("COMMANDE").Cells(num_ligne, 17)
lecteurzc = Worksheets("COMMANDE").Cells(num_ligne, 19)
lecteurzhc = Worksheets("COMMANDE").Cells(num_ligne, 20)
type_affzhc = Worksheets("COMMANDE").Cells(num_ligne, 24)
type_affzc = Worksheets("COMMANDE").Cells(num_ligne, 25)
detection = Worksheets("COMMANDE").Cells(num_ligne, 18)
pos_borne = Worksheets("COMMANDE").Cells(num_ligne, 23)

Set wb = Workbooks.Open("C:\Users\User\Desktop\Modele_inspection.xls")
Set ws = wb.Worksheets("version D")

ws.Range("C3") = "Type portillon + configuration: " & type_borne & " " & modele_borne
ws.Range("C4") = "N° série portique: " & num_borne
If detection = "" Then
detection = "/"
End If
ws.Range("C5") = "N° série caméra: " & detection
If pos_borne = "G" Then
ws.Range("G79") = "x"
ws.Range("G83") = ""
Else
ws.Range("G79") = ""
ws.Range("G83") = "x"
End If


Doss = "C:\Users\user\Desktop\TEST\" & nom_gare
If Dir(Doss, vbDirectory) = "" Then MkDir Doss

Dim LeParcours As String, LeRep As String
nomfichier = num_borne
chemin = Doss & "\"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

nb_borne = 0
num_col = 2
nb_borne = nb_borne + 1
num_ligne = num_ligne + 1
num_col = num_col + 1
wb.Close True
Wend
Afficher la suite 

1 réponse

Messages postés
6298
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2019
405
0
Merci
Bonjour,

voici un exemple, il suffit de coller chaque feuille d'inspection dedans. Il n'y a que 3 feuilles, à adapter pour ajouter des feuilles

https://www.cjoint.com/c/IDDj3jHQcJQ

Commenter la réponse de cs_Le Pivert