XL 2016 Création bouton impression

RoseP

XLDnaute Nouveau
Bonjour à tous,
Je souhaite créer deux boutons d'impression au sein de la même feuille excel avec deux zones d'impressions différentes. Est-ce possible?

J'arrive à créer une macro d'impression, mais je n'arrive pas à définir précisément la partie que je souhaite imprimer en cliquant sur l'un des deux boutons d'impression.
Merci d'avance pour votre aide.
 
Solution
C
Re,

Il faut utiliser l'enregistreur de macro et faire votre mise ne page,
ce qui vous donnerait le code que voici ;)
VB:
Sub MiseEnPage(Sht as WorkSheet, sPlage As String)
  ' Arrêter la communication avec l'imprimante = accélère le processus
  Application.PrintCommunication = False
  ' Avec la feuille active
  With Sht
    With .PageSetup
      .PrintTitleRows = "$1:$1"
      .PrintTitleColumns = ""
      ' Définit la zone d'impression
      .PrintArea = sPlage
      .LeftHeader = ""
      .CenterHeader = ""
      .RightHeader = ""
      .LeftFooter = ""
      .CenterFooter = ""
      .RightFooter = ""
      ' Définir les marges en centimètres
      .LeftMargin = Application.CentimetersToPoints(0.8)
      .RightMargin =...

RoseP

XLDnaute Nouveau
Oui le voila :
Code:
Sub Impression_Jour()

ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

End Sub

D'ailleurs, même ce code ne fonctionne plus...
Je souhaite sélectionner sur un bouton : les plages B3 à L27

et sur le second bouton, les plages B43 à L67

Vous remerciant par avance de votre aide!!
 

RoseP

XLDnaute Nouveau
Bonjour RoseP et bienvenue

Et si vous nous donniez le code créé pour votre impression 🤔
Code à mettre entre balises avec me bouton </>

A+
Oui le voila :
Code:
Sub Impression_Jour()

ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

End Sub

D'ailleurs, même ce code ne fonctionne plus...
Je souhaite sélectionner sur un bouton : les plages B3 à L27

et sur le second bouton, les plages B43 à L67

Vous remerciant par avance de votre aide!!
 
C

Compte Supprimé 979

Guest
Re,

Il faut utiliser l'enregistreur de macro et faire votre mise ne page,
ce qui vous donnerait le code que voici ;)
VB:
Sub MiseEnPage(Sht as WorkSheet, sPlage As String)
  ' Arrêter la communication avec l'imprimante = accélère le processus
  Application.PrintCommunication = False
  ' Avec la feuille active
  With Sht
    With .PageSetup
      .PrintTitleRows = "$1:$1"
      .PrintTitleColumns = ""
      ' Définit la zone d'impression
      .PrintArea = sPlage
      .LeftHeader = ""
      .CenterHeader = ""
      .RightHeader = ""
      .LeftFooter = ""
      .CenterFooter = ""
      .RightFooter = ""
      ' Définir les marges en centimètres
      .LeftMargin = Application.CentimetersToPoints(0.8)
      .RightMargin = Application.CentimetersToPoints(0.8)
      .TopMargin = Application.CentimetersToPoints(0.8)
      .BottomMargin = Application.CentimetersToPoints(0.8)
      .HeaderMargin = Application.CentimetersToPoints(0.8)
      .FooterMargin = Application.CentimetersToPoints(0.8)
      '
      .PrintHeadings = False
      .PrintGridlines = False
      '.PrintComments = xlPrintNoComments
      '.PrintQuality = 600
      .CenterHorizontally = False
      .CenterVertically = False
      .Orientation = xlPortrait
      '.Draft = False
      .PaperSize = xlPaperA4
      .FirstPageNumber = xlAutomatic
      '.Order = xlDownThenOver
      .BlackAndWhite = False
      .Zoom = 100
      '.OddAndEvenPagesHeaderFooter = False
      '.DifferentFirstPageHeaderFooter = False
      '.ScaleWithDocHeaderFooter = True
      '.AlignMarginsHeaderFooter = True
      '.EvenPage.LeftHeader.Text = ""
      '.EvenPage.CenterHeader.Text = ""
      '.EvenPage.RightHeader.Text = ""
      '.EvenPage.LeftFooter.Text = ""
      '.EvenPage.CenterFooter.Text = ""
      '.EvenPage.RightFooter.Text = ""
      '.FirstPage.LeftHeader.Text = ""
      '.FirstPage.CenterHeader.Text = ""
      '.FirstPage.RightHeader.Text = ""
      '.FirstPage.LeftFooter.Text = ""
      '.FirstPage.CenterFooter.Text = ""
      '.FirstPage.RightFooter.Text = ""
    End With
  End With
  Application.PrintCommunication = True
End Sub

A utiliser avant l'impression, comme ceci pour le 1er bouton à adapter pour le second
Code:
Sub Impression_Jour()
  Call MiseEnPage(ActiveSheet, "B3:L27")
  ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
End Sub

A+
 
Dernière modification par un modérateur:

RoseP

XLDnaute Nouveau
Re,

Il faut utiliser l'enregistreur de macro et faire votre mise ne page,
ce qui vous donnerait le code que voici ;)
VB:
Sub MiseEnPage(sPlage As String)
  ' Arrêter la communication avec l'imprimante = accélère le processus
  Application.PrintCommunication = False
  ' Avec la feuille active
  With ActiveSheet
    With .PageSetup
      .PrintTitleRows = "$1:$1"
      .PrintTitleColumns = ""
      ' Définit la zone d'impression
      .PrintArea = sPlage
      .LeftHeader = ""
      .CenterHeader = ""
      .RightHeader = ""
      .LeftFooter = ""
      .CenterFooter = ""
      .RightFooter = ""
      ' Définir les marges en centimètres
      .LeftMargin = Application.CentimetersToPoints(0.8)
      .RightMargin = Application.CentimetersToPoints(0.8)
      .TopMargin = Application.CentimetersToPoints(0.8)
      .BottomMargin = Application.CentimetersToPoints(0.8)
      .HeaderMargin = Application.CentimetersToPoints(0.8)
      .FooterMargin = Application.CentimetersToPoints(0.8)
      '
      .PrintHeadings = False
      .PrintGridlines = False
      '.PrintComments = xlPrintNoComments
      '.PrintQuality = 600
      .CenterHorizontally = False
      .CenterVertically = False
      .Orientation = xlPortrait
      '.Draft = False
      .PaperSize = xlPaperA4
      .FirstPageNumber = xlAutomatic
      '.Order = xlDownThenOver
      .BlackAndWhite = False
      .Zoom = 100
      '.OddAndEvenPagesHeaderFooter = False
      '.DifferentFirstPageHeaderFooter = False
      '.ScaleWithDocHeaderFooter = True
      '.AlignMarginsHeaderFooter = True
      '.EvenPage.LeftHeader.Text = ""
      '.EvenPage.CenterHeader.Text = ""
      '.EvenPage.RightHeader.Text = ""
      '.EvenPage.LeftFooter.Text = ""
      '.EvenPage.CenterFooter.Text = ""
      '.EvenPage.RightFooter.Text = ""
      '.FirstPage.LeftHeader.Text = ""
      '.FirstPage.CenterHeader.Text = ""
      '.FirstPage.RightHeader.Text = ""
      '.FirstPage.LeftFooter.Text = ""
      '.FirstPage.CenterFooter.Text = ""
      '.FirstPage.RightFooter.Text = ""
    End With
  End With
  Application.PrintCommunication = True
End Sub

A utiliser avant l'impression, comme ceci pour le 1er bouton à adapter pour le second
Code:
Sub Impression_Jour()
  Call MiseEnPage("B3:L27")
  ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
End Sub

A+
Je suis confus, mais cela ne fonctionne pas, je ne comprends pas :/
 

Discussions similaires

Statistiques des forums

Discussions
314 493
Messages
2 110 198
Membres
110 703
dernier inscrit
papysurf