Apercu avant impression VBA

Re-Bonjour à tous,

Nouveau topic pour nouvelle question...

J'ai acctuellement ce code vba :

Sub ImprimerDevis()
Dim Lig As Integer
Const Colonnes = 34
Const Ligne1 = 1
Sheets("Devis").Select 
For Lig = Ligne1 To [A65536].End(xlUp).Row Step 53
ActiveSheet.PageSetup.PrintArea = Range(Cells(Lig, 1), Cells(Lig + 52, Colonnes)).Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next Lig

Il me permet d'imprimer directement la page. Seulement je préfererai que l'impression ne se lance pas automatiquement comme c'est le cas avec cette macro, mais plutôt que l'aperçu avant impression s'ouvre pour que je puisse valider ou non l'impression.

Comment faire ? J'ai éssayé PrintPreview mais ça n'a rien donné...

Merci pour votre aide

Bonjour

corsaiire a écrit :

J'ai éssayé PrintPreview mais ça n'a rien donné...

Comment tu as fait ?

Remplaces la ligne

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Par celle-ci

ActiveWindow.SelectedSheets.PrintPreview

Parfait, mon erreur était que j'avais simplement remplacé :

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Par

ActiveWindow.SelectedSheets.PrintPreview Copies:=1, Collate:=True

Je n'avais pas supprimé la fin de ma ligne donc j'avais un message d'erreur ...

D'autre part, saurais-tu comment faire pour enregistrer au format pdf au lieu d'imprimer ? Ca doit pas être bien différent du code actuel mais j'ai un peu de mal a comprendre comment paramétrer celà... ?

Up édit message précendent

bonjour corsaiire, banzai64 et le forum

une piste pour enregistrer et imprimer un .PDF a adapter bien sur

Sub Devis_Export()
   With Sheets("Devis")
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\temp\Essai-PDF" & Replace(Replace(Now, ":", "-"), "/", "_") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    .PrintOut
   End With
End Sub

Pascal

Bonsoir Pascal,

je vais essayer ça demain, pour le moment j'ai pas réussi à l'adapter comme il faut pour que ça fonctionne.

Bonne soirée !

Bonjour à tous,

Voici le code que j'ai pour enregistrer en pdf :

Dim Nom As String
Sub Enregistrer_Devis_PDF()
Sheets("Devis").Select
Nom = Range("AC4").Value

    Range("A1:AH53").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AH$53"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Kevin\Documents\" & Nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

    End If

Le débogage surligne cette partie du code, mais je ne comprend pas pourquoi car j'ai pourtant bien déclaré ma variable "Nom".

Dans ma cellule AC4 j'ai D15/05, peut-être est-ce le "/" qui ne passe pas ? Si tel est le cas je ne sais pas comment le contourner...

J'ai bien vu ta partie de code

Replace(Replace(Now, ":", "-"), "/", "_") & ".pdf"

mais je n'arrive pas à l'adapter ...

Je viens enfin de réussir...

Range("A1:AH53").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AH$53"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Kevin\Documents\" & Replace(Replace(Nom, "/", "_"), "/", "_") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

Un grand merci Pascal ! Je n'ai pas compris pourquoi on met 2 fois la fonction Replace mais ça marche...

Bonne journée à tous

Rechercher des sujets similaires à "apercu impression vba"