XL 2021 Userform impression + choix des feuilles

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 !

candido57

XLDnaute Occasionnel
Bonjour,
J'ai un fichier avec une liste de nom. Je voudrais en appuyant un bouton "IMPRESSION LISTE" qu'une fenêtre s'ouvre et que je puisse sélectionner la feuille que je veux imprimer et ceci pour chaque personne de la liste de la feuille "Enfants".
Dans la fenêtre, je voudrais voir apparaitre uniquement l'onglet Hiver 1, Été 1, Été 2 et Hiver 2.
J'ai déjà une macro pour impression, mais elle imprime la liste vers le bas par rapport au chiffre que je saisie en cellule B1 feuille "Hiver 1"
Si par exemple, j'ai une liste de 100 personnes, si je saisie le N°50 , la macro imprime de 50 à 100.

Le but c'est d'imprimer les feuilles sélectionnées et pour chaque personne de la liste.

Merci beaucoup
 

Pièces jointes

Bonjour Candido,

Si j'ai bien compris votre demande,
voici votre fichier avec un USF qui permet le choix étendu des noms et feuilles

A+
Bonjour,
Merci beaucoup, oui c'est un peu ça ce que je veux.
Mais je voudrais sélectionner plusieurs nom ou la liste complète. le choix peut se faire en surbrillance ? Ou exemple 2 noms et 2 feuille au choix, voir les 4 feuilles en même temps ou toutes la liste de noms et les 4 feuilles en même temps.
En tout cas sur la première feuille Hiver 1 fonctionne
Je suppose que le bouton impression de droite c'est ANNULER. Et ça annule quoi ? J'ai rajouter
"Unload Me" pour quitter > Je ne sais pas si c'est ça que tu voulais faire .
Par contre la macro bloque > Voir capture écran
 

Pièces jointes

Dernière édition:
Re,

Mais je voudrais sélectionner plusieurs nom ou la liste complète. le choix peut se faire en surbrillance ? Ou exemple 2 noms et 2 feuille au choix, voir les 4 feuilles en même temps ou toutes la liste de noms et les 4 feuilles en même temps.
Je vous signale que c'est ce que vous pouvez faire !

Bref je n'irai pas plus loin si vous ne savez pas utiliser MAJ ou CTRL pour sélectionner un ensemble 🙄
 
Re,


Je vous signale que c'est ce que vous pouvez faire !

Bref je n'irai pas plus loin si vous ne savez pas utiliser MAJ ou CTRL pour sélectionner un ensemble 🙄
Par exemple si je choisis 2 noms et je sélectionne les feuilles hiver 1 et Été 1, il imprimé que la feuille Hiver 1 mais pas les deux. J'ai 2 impressions au lieu de 4.
Oui je sais utiliser la touche majuscule pour sélectionner plusieurs critères, mais je pensais que c'était plus simple si on pouvait mettre en surbrillance ou pouvoir cocher, mais c'est très bien comme ça, mais la macro bloque et toutes les impressions ne sortent pas
En tout cas merci
 
Bonjour,
J'ai rajouter dans la macro une mis en page de la feuille à imprimer "Call Ajuster" voir plus bas, l'ajustement la feuille fonctionne , mais si je choisie un nom et une feuille, il imprime toujours la 4ème. Moi je voudrais qu'il imprime ce que j'ai sélectionné.
Est ce que quelqu'un aurait une idée?

Private Sub Cbn_Imprimer_Click()
'Application.ScreenUpdating = False ' Faire fonctionner la macro sans exécuter
Dim Ind1 As Long, Ind2 As Long
Dim ShP As Worksheet

For Ind2 = 0 To Me.ListBox2.ListCount - 1
If Me.ListBox2.Selected(Ind2) Then
Set ShP = Sheets(Me.ListBox2.List(Ind2))

For Ind1 = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(Ind1) Then
ShP.Range("B1").Value = Me.ListBox1.List(Ind1)
'Debug.Print ShP.Name & "----" & ShP.Range("B1").Value

Call MASQUER_LIGNE
Call Fermer_La_fenêtre

Call Ajuster

ShP.PrintOut
Call AFFICHER_LIGNE

End If
Next Ind1
End If
Next Ind2
Application.ScreenUpdating = True
End Sub

Private Sub UserForm_Initialize()
Dim BdEnf As Range
Dim Sh As Worksheet
With ThisWorkbook.Sheets("Enfants")
Set BdEnf = .Range("A4:A" & .Range("A" & Rows.Count).End(xlUp).Row)
End With
Me.ListBox1.List = BdEnf.Value
For Each Sh In ThisWorkbook.Sheets
If InStr(1, Sh.Name, "Hiver") > 0 Or InStr(1, Sh.Name, "Été") > 0 Then
Me.ListBox2.AddItem Sh.Name
End If
Next Sh
End Sub



Sub Ajuster()

'ActiveSheet.Select
With ActiveSheet.PageSetup
.PrintArea = "$A$1:$AA$78"
.PaperSize = xlPaperA4
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.3)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = 60
.Orientation = xlLandscape

ActiveSheet.PrintPreview

End With

End Sub
 
- 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

  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
269
Retour