Imprime avec selection de zone

maval

XLDnaute Barbatruc
Bonjour,

Je suis à la recherche d'un code pour définir une zone d'impression en fonction du nombre de ligne.

Je m'explique: j'ai un classeur et suivant les circonstances il y a de 5 à 250 lignes et a chaque fois que je doit imprimer je doit définir une zone d'impression. Y a t-il en VBA un code qui permette de définir la zone d'impression suivant le nombre de ligne a imprimer?

J'ai le code suivant mais il doit y avoir un problème car il sélectionne bien la zone mais n'imprime pas?

Code:
Sub Imprime()

Dim derLig As Integer
derLig = Cells(65000, 2).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "A19:J" & derLig

If vbNo = MsgBox("Vous voulez imprimer ce document en mode portrait ?", vbYesNo) Then

 With ActiveSheet.PageSetup
        .PrintArea = "$A$19:$J$100"
        .Orientation = xlPortrait
    End With
    ActiveSheet.PrintOut

End If
End Sub

Je vous remercie de votre aide
Cordialement
Max
 

Pièces jointes

  • Imprim.xlsm
    26.3 KB · Affichages: 22
  • Imprim.xlsm
    26.3 KB · Affichages: 25
  • Imprim.xlsm
    26.3 KB · Affichages: 31

maval

XLDnaute Barbatruc
Re : Imprime avec selection de zone

Bonjour JPb388,

Je te remercie bien, exact sa imprime, mais il reste un problème. Lorsque je click sur le bouton pour imprimer il sélectionne bien les lignes auquel sont rempli, mais il imprime jusqu’à la 100éme lignes comme j'ai mis ceci:
PrintArea = "A19:J100" car il refuse ceci: PrintArea = "A19:J"

Code:
Sub Imprime()

Dim derLig As Integer
derLig = Cells(65000, 2).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "A19:J" & derLig


If vbYes = MsgBox("Vous voulez imprimer ce document en mode portrait ?", vbYesNo) Then
'MsgBox ("C'est faaaaaiiiiiittttt")
 With ActiveSheet.PageSetup
        .PrintArea = "A19:J100"
        .Orientation = xlPortrait
    End With
    ActiveSheet.PrintOut

End If
End Sub

Merci d'avance

Max
 

jpb388

XLDnaute Accro
Re : Imprime avec selection de zone

re

essaye ceci
Code:
Sub Imprime()

 Dim derLig As Integer
 derLig = Cells(65000, 2).End(xlUp).Row
 
 If vbYes = MsgBox("Vous voulez imprimer ce document en mode portrait ?", vbYesNo) Then
 'MsgBox ("C'est faaaaaiiiiiittttt")
  With ActiveSheet.PageSetup
         .PrintArea =  "A19:J" & derLig
         .Orientation = xlPortrait
     End With
     ActiveSheet.PrintOut

 End If
 End Sub
 

jpb388

XLDnaute Accro
Re : Imprime avec selection de zone

re
la largeur de la zone d'impression est plus grande que la largeur d'une a4 d'ou 2 feuilles
mettre la feuille en paysage comme ceci
Code:
Sub Imprime()

  Dim derLig As Integer
  derLig = Cells(65000, 2).End(xlUp).Row
  
  If vbYes = MsgBox("Vous voulez imprimer ce document en mode portrait ?", vbYesNo) Then
  'MsgBox ("C'est faaaaaiiiiiittttt")
   With ActiveSheet.PageSetup
          .PrintArea = "A19:J" & derLig
          .Orientation = xlLandscape

      End With
      ActiveSheet.Printout
  End If
  End Sub

et si tu veux garder le portrait tu réduit le zoom

Code:
Sub Imprime()

  Dim derLig As Integer
  derLig = Cells(65000, 2).End(xlUp).Row
  
  If vbYes = MsgBox("Vous voulez imprimer ce document en mode portrait ?", vbYesNo) Then
  'MsgBox ("C'est faaaaaiiiiiittttt")
   With ActiveSheet.PageSetup
          .PrintArea = "A19:J" & derLig
          .Orientation = xlPortrait
            .Zoom = 75
      End With
      ActiveSheet.Printout
End If
  End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 276
Messages
2 086 713
Membres
103 377
dernier inscrit
fredy45