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
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.