Microsoft 365 Créer une macro pour l'impression

grosduke

XLDnaute Nouveau
Bonjours à tous, j'aurais besoin de votre aide pour créer une macro qui pourrait imprimer une zone défini en pleine page (une sorte de zoom) sur une seule page et de pouvoir choisir une option d'impression du format papier désiré, ex. A4 et A5.

Merci!
 

danielco

XLDnaute Accro
Bonjour,

Essaie :

VB:
Sub Impression()
  Dim ZoneImpr As Range, Page As String
  On Error Resume Next
  Set ZoneImpr = Application.InputBox("Sélectionnez la zone à imprimer", Type:=8)
  If ZoneImpr Is Nothing Then
    Err.Clear
    Exit Sub
  End If
  On Error GoTo 0
  Page = UCase(InputBox("Taille papier ?"))
  If Page <> "A4" And Page <> "A5" Then
    MsgBox "Erreur de saisie"
    Exit Sub
  End If
  With ActiveSheet.PageSetup
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    If Page = "A4" Then
      .PaperSize = xlPaperA4
    Else
      .PaperSize = xlPaperA5
    End If
  End With
  Selection.PrintOut
End Sub

Cordialement.

Daniel
 

danielco

XLDnaute Accro
Quand tu as la boîte de dialogue "Sélectionnez la zone à imprimer", il faut que tu sélectionnes la plages de cellules à imprimer avec la souris. Sinon, si c'est toujours la plage D4:F35 :

VB:
Sub Impression1()
  Dim ZoneImpr As Range, Page As String
  Page = UCase(InputBox("Taille papier ?"))
  If Page <> "A4" And Page <> "A5" Then
    MsgBox "Erreur de saisie"
    Exit Sub
  End If
  With ActiveSheet.PageSetup
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    If Page = "A4" Then
      .PaperSize = xlPaperA4
    Else
      .PaperSize = xlPaperA5
    End If
  End With
  [D4:F35].PrintOut
End Sub
 

danielco

XLDnaute Accro
Chaud... Essaie d'utiliser "xlPaperTabloid ". J'ai lu que ça pouvait résoudre le problème...
Annotation 2019-09-08 213516.png


(https://stackoverflow.com/questions...the-papersize-property-of-the-pagesetup-class)

Daniel
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 166
Membres
103 151
dernier inscrit
nassim