[Résolu] Problème de mise en forme export pdf en vba

Bonjour, pour des besoins pro j’ai un fichier excell contenant plusieurs onglets, en fin de travail l’un des onglet est enregistré dans un nouveau fichier dont une copie est faite en pdf.
Le fichier excell ainsi généré permet, lors de modification, d’être rechargé dans le fichier initial, modifié et réexporté en pdf.
Le premier pdf contient bien toutes les colonne sur une page alors que le second n’en prends que quelque unes, le code d’export es le même dans les deux cas je pense donc à un problème de mise en forme quand je réimporte l’excell dans le fichier d’origine mais ne trouve pas comment solutionner.
Voici les deux codes :

Code de génération du excell et du pdf

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & « validation.pdf », Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'enregistrement d’une copie de l’onglet en format excell
Sheets(« En_cours »).Copy
nompdf = nompdf & « validation.xlsm » '« validation.xlsx »
ActiveWorkbook.SaveAs nompdf, xlOpenXMLWorkbookMacroEnabled 'xlOpenXMLStrictWorkbook
ActiveWorkbook.Close (False)

Code de réimport de l’onglet excell

'définition de l’adresse du fichier
repertoire = repertoire & « \validation.xlsm » '« \validation.xlsx »
Workbooks.Open Filename:= _
repertoire
Cells.Select
Selection.Copy
Windows(« compte rendu de validation avec macro.xlsm »).Activate
Sheets.Add After:=ActiveSheet
Sheets(« Feuil1 »).Select
Sheets(« Feuil1 »).Name = « En_cours »
Cells.Select
ActiveSheet.Paste

Merci d’avance de votre aide
bonne journée

Bonjour

Lors de la réalisation de ta copie il ne faut pas se cantonner à ne réaliser que celle des cellules il faut réaliser le clonage de l’onglet intégral cellules + tout les paramètres de l’onglet source du pdf déjà créé

Donc à la place de ces lignes de code :

Cells.Select
Selection.Copy
Windows(« compte rendu de validation avec macro.xlsm »).Activate
Sheets.Add After:=ActiveSheet
Sheets(« Feuil1 »).Select
Sheets(« Feuil1 »).Name = « En_cours »
Cells.Select
ActiveSheet.Paste

Je mettrais ceci :
Windows(« compte rendu de validation avec macro.xlsm »).Activate
Workbooks(« validation.xlsx »).ActiveSheet.Copy Sheets(1)
ActiveSheet.Name = « En cours »
ActiveSheet.Move After:=Sheets(« RECAP »)

Ainsi le nouvel onglet créé renommé « Encours » dans le classeur « compte rendu de validation avec macro.xlsm » est le clone de l’onglet actif du classeur « validation.xlsx »

Normalement il doit produire le même résultat concernant sont export en fichier pdf

Sinon il faut nous transmettre tes 2 fichiers sans donnée confidentielle pour les tester

Dis nous

1 « J'aime »

Merci de ta réponse, tout fonctionne parfaitement, je retiens cette façon de faire

Très bonne journée

Merci pour ta réponse positive
Je suis ravi que cela te convienne
N’oublies pas valider ma proposition c’est bien agréable
Au plaisir de t’aider une autre fois

Avec plaisir, c’est fait
bonne journée

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.