Microsoft 365 créer un bouton pour imprimer

eldid

XLDnaute Nouveau
Bonjour,

j ai une feuille bulletin qui récupère tous les points des différentes branches par enfant . Les enfants sont dans un menu déroulant j'aimerais créer un bouton pour imprimer tous les bulletins en un clic.

Merci
 
Dernière édition:
Solution
Dans le module de code de la feuille "Bulletin", placer le code ci-dessous puis cliquer sur le bouton
VB:
Private Sub CommandButton1_Click()
' On va définir les paramètres généraux d'impression de la feuille
    Application.PrintCommunication = False
    With Me.PageSetup
        .PrintArea = "$A:$L"
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    Application.PrintCommunication = True
    
' On demande d'abord de choisir une imprimante
    With Application.Dialogs(xlDialogPrinterSetup)
        If .Show Then
            Application.ScreenUpdating = False
          ' on parcourt...

fanch55

XLDnaute Barbatruc
Bonsoir,

Si j'interprète bien la demande, il y a 1 bulletin(feuille) par enfant .
Vous voulez pouvoir imprimer tous ces bulletins via un bouton : sur un Userform ? une autre feuille ?

Avez-vous un exemple de classeur ?
Sinon comment sont nommés ces bulletins ?
 

eldid

XLDnaute Nouveau
Merci d'avance,

dans la feuille bulletin sous mon menu déroulant vert, j'ai un bouton et j'aimerais comme écris dessus qu'il imprime le bulletin de chaque élèves contenu dans le menu déroulant en un seul clic
 

Pièces jointes

  • test impression vierge.xlsx
    136.1 KB · Affichages: 5

fanch55

XLDnaute Barbatruc
Dans le module de code de la feuille "Bulletin", placer le code ci-dessous puis cliquer sur le bouton
VB:
Private Sub CommandButton1_Click()
' On va définir les paramètres généraux d'impression de la feuille
    Application.PrintCommunication = False
    With Me.PageSetup
        .PrintArea = "$A:$L"
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    Application.PrintCommunication = True
    
' On demande d'abord de choisir une imprimante
    With Application.Dialogs(xlDialogPrinterSetup)
        If .Show Then
            Application.ScreenUpdating = False
          ' on parcourt chaque Elève (cellule) de la zone [listedesélèves]
            Dim Eleve As Range
            For Each Eleve In [listedesélèves]
                Select Case Eleve
                    Case "Elèves"                  ' On ignore (entête)
                    Case ""                        ' On ignore (cellule vide)
                    Case Else                      ' y'a un élève
                        Me.[N5].Value = Eleve.Text ' On charge la cellule de choix
                        Me.Calculate               ' les formules de la feuille sont recalculées
                        Me.PrintOut                ' on envoit vers l'imprimante choisie
                End Select
            Next
        End If
    End With
End Sub
 

Pièces jointes

  • test impression vierge F55.xlsm
    160.5 KB · Affichages: 4
Dernière édition:

eldid

XLDnaute Nouveau
Dans le module de code de la feuille "Bulletin", placer le code ci-dessous puis cliquer sur le bouton
VB:
Private Sub CommandButton1_Click()
' On va définir les paramètres généraux d'impression de la feuille
    Application.PrintCommunication = False
    With Me.PageSetup
        .PrintArea = "$A:$L"
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    Application.PrintCommunication = True
   
' On demande d'abord de choisir une imprimante
    With Application.Dialogs(xlDialogPrinterSetup)
        If .Show Then
            Application.ScreenUpdating = False
          ' on parcourt chaque Elève (cellule) de la zone [listedesélèves]
            Dim Eleve As Range
            For Each Eleve In [listedesélèves]
                Select Case Eleve
                    Case "Elèves"                  ' On ignore (entête)
                    Case ""                        ' On ignore (cellule vide)
                    Case Else                      ' y'a un élève
                        Me.[N5].Value = Eleve.Text ' On charge la cellule de choix
                        Me.Calculate               ' les formules de la feuille sont recalculées
                        Me.PrintOut                ' on envoit vers l'imprimante choisie
                End Select
            Next
        End If
    End With
End Sub
Bonjour , super boulot, un tout grand merci ,c'est tout à fait ce que je voulais
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 168
dernier inscrit
isidore33