XL 2013 Export-vers-Excel&PDF

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chindou

XLDnaute Occasionnel
Bonsoir le forum

J’utilise le code ci-dessous qui marche très bien, pour sauvegarder (Exporter) une plage de cellules nommée « Plage » en deux formats xlsx & PDF et sous un nouveau nom.

Dans mon code il y a une partie pour la sauvegarde en xlsx et PDF autre partie pour supprimer les shapes (objets dessin) et la partie pour supprimer les liaisons « noms définis »

Le seul problème c’est que mon code est un peu lourd, est-ce possible de le simplifier ?
 

Pièces jointes

Solution
@chindou

Désolé, j'avais oublié ceci : nom du fichier sans mettre l'extension :

NomFichier = [Feuil3!T10] & "_" & [Feuil4!B6] & "_" & Format([Feuil3!T38], "dd-mm-yyyy")



... : ChemindFichier = ChemindAcces & "\" & NomFichier & ".pdf"

et

ActiveWorkbook.SaveCopyAs ChemindAcces & "\" & NomFichier & ".xlsx"

Code VBA complet :
VB:
Option Explicit

Sub Sauvegarder() 'Sauvegarder la feuille "Visite" sous format xlsx et pdf
  Dim Reponse%
  Reponse = MsgBox("Veux-tu créer un fichier PDF à partir du feuille active ?", _
    vbYesNo + vbDefaultButton2 + vbExclamation, "Créer un fichier PDF")
  If Reponse = vbNo Then Exit Sub
  Dim wkb As Workbook, nm As Name, NomFichier$, ChemindAcces$, ChemindFichier$...
Salut, plutôt que d'asphyxier le code, il faut l'aérer et en augmenter la lisibilité.
Il existe des utilitaires d'indentation. On se croirait revenu au temps des Basics Applesoft et autres des années 80 sur des machines à 1 MHz où cette écriture pouvait jouer sur les perfs de l'interprétation.
D'autre part utiliser les CodeNames au lieu des noms d'onglets, cela permet de changer les noms d'onglets sans avoir à retoucher au code.
 
Dernière édition:
@chindou

Désolé, j'avais oublié ceci : nom du fichier sans mettre l'extension :

NomFichier = [Feuil3!T10] & "_" & [Feuil4!B6] & "_" & Format([Feuil3!T38], "dd-mm-yyyy")



... : ChemindFichier = ChemindAcces & "\" & NomFichier & ".pdf"

et

ActiveWorkbook.SaveCopyAs ChemindAcces & "\" & NomFichier & ".xlsx"

Code VBA complet :
VB:
Option Explicit

Sub Sauvegarder() 'Sauvegarder la feuille "Visite" sous format xlsx et pdf
  Dim Reponse%
  Reponse = MsgBox("Veux-tu créer un fichier PDF à partir du feuille active ?", _
    vbYesNo + vbDefaultButton2 + vbExclamation, "Créer un fichier PDF")
  If Reponse = vbNo Then Exit Sub
  Dim wkb As Workbook, nm As Name, NomFichier$, ChemindAcces$, ChemindFichier$
  Application.ScreenUpdating = 0
  NomFichier = [Feuil3!T10] & "_" & [Feuil4!B6] & "_" & Format([Feuil3!T38], "dd-mm-yyyy")
  Worksheets("Visite").Unprotect Password:="": Worksheets("Visite").Copy
  Range("Plage").Copy: Range("Plage").PasteSpecial -4163: Application.CutCopyMode = 0
  'Supprimer les boutons (objets dessin)
  ActiveSheet.Shapes.Range(Array("Image 4", "Image 5", "SpinButton1", "Rectangle 2")).Delete
  Set wkb = ActiveWorkbook: On Error Resume Next
  For Each nm In wkb.Names: nm.Delete: Next nm 'Supprimer les liaisons (noms définis)
  ChemindAcces = "C:\Dossier_Inspect-V11\Rapports": ChemindFichier = ChemindAcces & "\" & NomFichier & ".pdf"
  ActiveWorkbook.SaveCopyAs ChemindAcces & "\" & NomFichier & ".xlsx"
  ActiveWorkbook.Close 0
  ActiveSheet.ExportAsFixedFormat 0, ChemindFichier, 0, True, False, , , False
  Worksheets("Visite").Protect Password:=""
End Sub
Bonne soirée à toi aussi.

soan
 

Pièces jointes

Dernière édition:
Bonjour soan, bonjour le forum
Oui il y avait un bug au niveau de la ligne :
VB:
NomFichier = [Feuil3!T10] & "_" & [Feuil4!B6] & "_" & Format([Feuil3!T38], "dd-mm-yyyy") & ".pdf"
J’ai remplacé cette dernière, suite à une comparaison des deux modules par la ligne :
VB:
NomFichier = Feuil3.Range("T10") & "_" & Feuil4.Range("B6") & "_" & Format(Feuil3.Range("T38"), "dd-mm-yyyy") & ".pdf"
Merci bien soan.🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
456
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
507
Réponses
3
Affichages
825
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
84
Réponses
3
Affichages
523
Réponses
2
Affichages
551
Retour