XL 2013 2 onglets enPDF sur Bureau

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 !

jeromeN95

XLDnaute Impliqué
Hello,

besoin d'aide svp. J'essaye de faire une simple macro pour mettre 2 onglets en PDF sur le bureau :

VB:
Sub PDF_SAVE()
Dim Fic As String
Dim LeDate As String

LaDate = Format(Date, "dd" & "." & "mm" & "." & "yyyy")

' Création fichier PDF
  Fic = Sheets(Array("Contrat", "ContratPret")).Select & "\Contrat" & " " & Sheets("Choix").Range("C4").Value & " " & Sheets("Choix").Range("C5").Value & " " & Sheets("Choix").Range("C7").Value ' donner le nom voulu pour le correspondant

  If Dir(Fic) <> "" Then Kill Fic 'création du PDF dans le même dossier que le fichier 
    
    Sheets(Array("Contrat", "ContratPret")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Fic & " " & LaDate & " " & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False

    Sheets("Choix").Select

' Message de confirmation
MsgBox ("Création du fichier PDF effectué sur le bureau" & vbCrLf & vbCrLf & "Merci de le retourner signée ")

End Sub

Hellas, c'est le drame depuis 2h.
L'idée est donc d'enregistrer les onglets "Contrat" et "ContratPret" en formet PDF avec en nom de fichier le nom d'un client, la ville, … contenu en ChoixC4, C5, C7.

D'avance merci, je sais que c'est une syntaxe dans Sheets (Array("...
 
Solution
Salut, @jeromeN95
une version light donne ceci.
Mais il y a un tout petit peu mieux avec les CodeNames
Cela permet de renommer les onglets sans avoir à retoucher au code VBA.

VB:
Option Explicit

Sub Tst_2007()
Dim sNomFichierPDF As String
Dim Ar(1) As String

    sNomFichierPDF = ThisWorkbook.Path & "\" & "Contrat.pdf"

    Ar(0) = Feuil1.Name
    Ar(1) = Feuil2.Name

    Application.ScreenUpdating = False
    Sheets(Ar).Select

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:=sNomFichierPDF, _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _...
Bonjour merxi en effet c’est très bien détailler.
si je comprend bien la syntaxe :


Dim i As Long, Cpt As Long
Dim Ar() As String

sNomFichierPDF = ThisWorkbook.Path & "\" & "Contrat.pdf"

Cpt = 0
For i = 1 To ThisWorkbook.Sheets.Count
If Left(Sheets(i).Name, 2) = "conntratpret" Or Left(Sheets(i).Name, 2) = "Contratpret" Then
ReDim Preserve Ar(Cpt)
Ar(Cpt) = Sheets(i).Name
Cpt = Cpt + 1
End If
Next i
If Cpt = 0 Then Exit Sub
 
Salut, @jeromeN95
une version light donne ceci.
Mais il y a un tout petit peu mieux avec les CodeNames
Cela permet de renommer les onglets sans avoir à retoucher au code VBA.

VB:
Option Explicit

Sub Tst_2007()
Dim sNomFichierPDF As String
Dim Ar(1) As String

    sNomFichierPDF = ThisWorkbook.Path & "\" & "Contrat.pdf"

    Ar(0) = Feuil1.Name
    Ar(1) = Feuil2.Name

    Application.ScreenUpdating = False
    Sheets(Ar).Select

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:=sNomFichierPDF, _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False

    Sheets(Feuil3.Name).Select
    Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Test.xlsb
    Test.xlsb
    17.4 KB · Affichages: 8
  • Contrat.pdf
    Contrat.pdf
    3.8 KB · Affichages: 2
  • CodeName.png
    CodeName.png
    65.4 KB · Affichages: 5
- 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
7
Affichages
2 K
Réponses
4
Affichages
2 K
Retour