XL 2016 Création bouton impression

  • Initiateur de la discussion Initiateur de la discussion RoseP
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 =...
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!!
 
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!!
 
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:
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 :/
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
400
Réponses
32
Affichages
977
Réponses
15
Affichages
265
Réponses
1
Affichages
109
Retour