cases à cocher...

swid

XLDnaute Nouveau
Bonjour!!
Fraîchement inscrit et présenté, je viens poser ma question en espérant qu'elle y trouvera une réponse...
Le problème est simple: j'ai fait un classeur Excel composé de deux feuilles. Sur la première, il y a deux cases à remplis, l'une avec la date et l'autre avec un numéro de département. Une fois ces cases remplies, il suffit de cliquer sur une macro "impression" pour que les "étiquettes" qui sont sur la feuille 2 sortent à la bonne date et à la bonne adresse.
Jusque là, pas de souci. Le problème est qu'il existe 44 étiquettes différentes sur cette feuille 2. Or, il n'est pas forcément nécessaire d'avoir à toutes les imprimer. Je voudrais donc, sur la feuille 1, des cases à cocher avec les noms "étiquette type 1", "étiquette type 2", etc. qui permettraient de n'imprimer que le nécessaire et d'éviter le gaspillage.
Voilà, j'espère avoir été assez clair...
Merci d'avance pour votre aide!!
 

swid

XLDnaute Nouveau
Re : cases à cocher...

Merci pour ta réponse,

le lien vers lequel tu m'envoies reprends un problème proche mais beaucoup plus compliqué que ce que je souhaite faire.

Je vous mets le fichier (soyez indulgent...) de ce que j'ai réussi à faire. Pour l'heure, l'utilisateur n'a pas d'autre choix que d'imprimer la totalité des pages, même s'il ne lui en faut que deux... le souci, c'est que ça fait 44 feuilles d'imprimées à chaque fois...:(

Merci!
 

Pièces jointes

  • feuilles.xls
    43 KB · Affichages: 57
  • feuilles.xls
    43 KB · Affichages: 53
  • feuilles.xls
    43 KB · Affichages: 54

Cousinhub

XLDnaute Barbatruc
Re : cases à cocher...

Bonsoir

regarde le fichier exemple

à la place de checkboxs, c'est une listbox

tu sélectionnes tes données, dans cette listbox, et tu n'imprimes que les données souhaitées

le code :

Code:
Sub Imprim_juste()
Dim Lig As Long, i As Integer
Set AImprimer = CreateObject("Scripting.Dictionary")
With Sheets("Feuil1").ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) Then
            AImprimer.Add .List(i), .List(i)
            .Selected(i) = False
        End If
    Next i
End With
If AImprimer.Count = 0 Then MsgBox "pas de sélections": Exit Sub
temp = AImprimer.items
With Sheets("Feuil2")
    .Rows("1:441").Hidden = True
    For i = LBound(temp) To UBound(temp)
        Lig = Application.Match(temp(i), .Range("A1:A437"), 0)
        .Rows(Lig - 1 & ":" & Lig + 8).Hidden = False
    Next i
        .ResetAllPageBreaks
    For i = 11 To 441 Step 10
        If .Rows(i - 1).Hidden = False Then
            .HPageBreaks.Add Before:=.Cells(i, 12)
            .VPageBreaks.Add Before:=.Cells(i, 12)
        End If
    Next i

    .PrintPreview
'    .PrintOut Copies:=1
    .Rows("1:441").Hidden = False
End With
End Sub

PS, pour imprimer, supprime le quote ( ' ) de .PrintOut, et mets-en un devant .PrintPreview
 

Pièces jointes

  • Copie de feuilles_v1.zip
    22.7 KB · Affichages: 32
Dernière édition:

Lii

XLDnaute Impliqué
Re : cases à cocher...

Bonjour,

Un autre code, avec une listbox qui s'alimente par focus donc sans avoir à changer d'onglet et qui présente des "cases à cocher".
 

Pièces jointes

  • ListboxMultiImpressions.zip
    12.1 KB · Affichages: 28

swid

XLDnaute Nouveau
Re : cases à cocher...

Merci pour vos réponses intéressantes, bien qu'un peu complexe pour moi... J'aime bien l'idée de la liste mais pas pour ce document. En effet, dans le cas présent, les cases à cocher ont comme avantage de pouvoir être déjà cocher et l'utilisateur décoche celles qui ne lui servent pas car, souvent, on a besoin d'une trentaine d'étiquettes quand même.
La méthode drag and drop est sympa elle aussi, mais je n'ai pas trouvé l'endroit où indiquer le numéro de département.
En tout cas, merci à tous pour vos réponses, elles m'aideront dans d'autres projets.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12