Apercu avant impression vba Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
c
corsaiire
Membre habitué
Membre habitué
Messages : 106
Inscrit le : 13 décembre 2014
Version d'Excel : 2016

Message par corsaiire » 20 décembre 2014, 12:59

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
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 4
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 20 décembre 2014, 13:20

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
Image
c
corsaiire
Membre habitué
Membre habitué
Messages : 106
Inscrit le : 13 décembre 2014
Version d'Excel : 2016

Message par corsaiire » 20 décembre 2014, 14:31

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à... ?
c
corsaiire
Membre habitué
Membre habitué
Messages : 106
Inscrit le : 13 décembre 2014
Version d'Excel : 2016

Message par corsaiire » 20 décembre 2014, 17:08

Up édit message précendent
Avatar du membre
grisan29
Membre impliqué
Membre impliqué
Messages : 1'265
Inscrit le : 26 janvier 2010
Version d'Excel : 2013 pro FR

Message par grisan29 » 20 décembre 2014, 18:30

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
c
corsaiire
Membre habitué
Membre habitué
Messages : 106
Inscrit le : 13 décembre 2014
Version d'Excel : 2016

Message par corsaiire » 20 décembre 2014, 23:48

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 !
c
corsaiire
Membre habitué
Membre habitué
Messages : 106
Inscrit le : 13 décembre 2014
Version d'Excel : 2016

Message par corsaiire » 21 décembre 2014, 11:27

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"
    [surligner]ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Kevin\Documents\" & Nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True[/surligner]

    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 ...
c
corsaiire
Membre habitué
Membre habitué
Messages : 106
Inscrit le : 13 décembre 2014
Version d'Excel : 2016

Message par corsaiire » 21 décembre 2014, 12:00

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message