macro PDF (enregistrer sous) fonctionnelle à adapter pour 4 plages fixes de données

Ctrl-Alt-Suppr

XLDnaute Junior
Bonjour à tous.

Dans un seul et même onglet, j'ai 4 plages fixes de données (non voisines).
J'aimerai en 1 clic de bouton, imprimer ces plages en PDF.
L'idéal serait même que mon PDF fasse 4 pages, avec 1 page = 1 plage de données.

Après multiples recherches sur la toile, le code qui semble me correspondre le mieux est le suivant.

Étant débutant, QUI PEUT M'AIDER À ADAPTER LE CODE POUR TRANSFORMER
LA ZONE D'IMPRESSION «sélection active» EN 4 PLAGES IMPOSÉES ?


Mes plages figées étant : P3:U56 —— AA3:AF56 —— AL3:AQ56 —— AW3:BB56

Code:
Sub CommandButton2_Click()
Dim ws As Worksheet
Dim strPath As String
Dim myFile As Variant
Dim strFile As String
On Error GoTo errHandler

Set ws = ActiveSheet
strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
            & "  " _
            & Format(Now(), "yyyy.mm.dd\  hh'mm ") _
            & ".pdf"
strFile = ThisWorkbook.Path & "\" & strFile

myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
        FileFilter:="PDF Files (*.pdf), *.pdf", _
        Title:="Select Folder and FileName to save")

If myFile <> "False" Then
    ws.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

    MsgBox "fichier PDF créé"
End If

exitHandler:
    Exit Sub
errHandler:
    MsgBox "Could not create PDF file"
    Resume exitHandler
End Sub
 

kiki29

XLDnaute Barbatruc
Re : macro PDF (enregistrer sous) fonctionnelle à adapter pour 4 plages fixes de donn

Salut, l'enregistreur de macros est là pour ça, bref tu pourrais obtenir qqch comme
Code:
    Application.Goto Reference:="Zone"
    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
 

Ctrl-Alt-Suppr

XLDnaute Junior
Re : macro PDF (enregistrer sous) fonctionnelle à adapter pour 4 plages fixes de donn

Comme déjà sous-entendu dans un autre sujet, quand on n'est pas du tout programmeur, la logique du code n'est pas évidente ; et par exemple fusionner range (1) + print (1) puis range (2) + print (2) ... etc. apparaît comme infaisable à mon niveau ... d'où ma venue sur un forum tel que le votre.

D'ailleurs l'enregistreur de macros me donne ceci pour la première plage :
Code:
Sub Macro1()
    Range("P3:U56").Select
    ActiveSheet.PageSetup.PrintArea = "$P$3:$U$56"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub
Hors ta réponse fait appel à Application.Goto ou encore ExecuteExcel4Macro.
Un complément de réponse serait le bienvenue ^^
Par avance, merci.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas