Fusionner plusieurs feuille excel en un pdf

Fermé
Ad_v Messages postés 1 Date d'inscription lundi 29 avril 2019 Statut Membre Dernière intervention 29 avril 2019 - 29 avril 2019 à 10:16
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 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
A voir également:

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
29 avril 2019 à 11:58
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

0