Nbre par categorie sur chaque label

  • Initiateur de la discussion Initiateur de la discussion maval
  • 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 !

maval

XLDnaute Barbatruc
Bonjour,

Est-il possible d'avoir sur chaque label "représentent un bouton" le nombre de film par catégorie qui se trouve sur l'onglet nommer "Données".
Je joint un fichier avec modèle qui seras certainement plus explicite.

Je vous remercie d'avance et vous souhaite une bonne journée
 

Pièces jointes

Re : Nbre par categorie sur chaque label

Bonjour maval, le forum,

Code:
Private Sub UserForm_Initialize()
    Dim i%
    For i = 1 To UBound(a)
        Me("Label" & i) = Feuil2.Cells(1, i) & " (" & _
          Application.CountA(Feuil2.Columns(i)) - 1 & ")"
        Set a(i).LB = Me("Label" & i)
    Next
End Sub
ou :

Code:
Private Sub UserForm_Initialize()
    Dim i%, c As Range
    For i = 1 To UBound(a)
        Set c = Feuil2.Cells(1, i)
        Me("Label" & i) = c & " (" & Application.CountA(c.EntireColumn) - 1 & ")"
        Set a(i).LB = Me("Label" & i)
    Next
End Sub
Edit : et alors bien sûr dans le module de classe :

Code:
Private Sub LB_Click()
    Dim r As Range
    Set r = Feuil2.Rows(1).Find(Trim(Split(LB, "(")(0)), , xlValues, xlWhole)
    Set r = r(2).Resize(Application.CountA(r.EntireColumn) - 1)
    With LB.Parent.Parent
        .ListBox1.List = r.Value
        .ListBox1.Visible = True
        .Frame1.Visible = False
        .Label22 = "Nombre de Film(s) : " & r.Count & "  dans cette Catégorie.....,"
    End With
End Sub
Bonne journée.
 
Dernière édition:
Re : Nbre par categorie sur chaque label

Bonjour,

modifie comme suit :
Code:
Private Sub UserForm_Initialize()
    Dim i%
    For i = 1 To UBound(a)
        Me("Label" & i) = Feuil2.Cells(1, i) & "(" & Feuil2.Cells(Rows.Count, i).End(xlUp).Row - 1 & ")"
        Set a(i).LB = Me("Label" & i)
    Next
End Sub

bonne journée
@+

Edition : bonjour Job🙂, aarf un peu en retard moi....
 
Re : Nbre par categorie sur chaque label

Re,

Je viens de m'apercevoir que les labels ont bien le nombre de film par catégorie, mais lorsque je clique dessus sa m me donne une erreur par apport au module de classe

Code:
Option Explicit
Public WithEvents LB As MSForms.Label

Private Sub LB_Click()
    Dim r As Range
    Set r = Feuil2.Rows(1).Find(LB, , xlValues, xlWhole)
    On Error GoTo 1
    Set r = r(2).Resize(Application.CountA(r.EntireColumn))
    With LB.Parent.Parent
        .ListBox1.List = r.Value
        .ListBox1.Visible = True
        .Frame1.Visible = False
        
        UserForm1.Label37.Caption = "Nombre de Film(s) : " & UserForm1.ListBox1.ListCount 'Nbre de film pdans la categorie
    UserForm1.Label43 = LB 'Nom de la categorie
    End With
    Exit Sub
1 MsgBox "Vous n'avez aucun film dans cette catégorie", , "Aucun Film trouvé" 'Message d'erreur s'il n'y a pas de film
End Sub

Bonne journée
 
Re : Nbre par categorie sur chaque label

Re,

modifie comme suit :
Code:
Option Explicit
Public WithEvents LB As MSForms.Label
Private Sub LB_Click()
    Dim r As Range
    Set r = Feuil2.Rows(1).Find(Split(LB, "(")(0), , xlValues, xlWhole)
    Set r = r(2).Resize(Application.CountA(r.EntireColumn) - 1)
    With LB.Parent.Parent
        .ListBox1.List = r.Value
        .ListBox1.Visible = True
        .Frame1.Visible = False
        UserForm1.Label22.Caption = "Nombre de Film(s) : " & UserForm1.ListBox1.ListCount & "  dans cette Catégorie.....,"
    End With
End Sub
 
Re : Nbre par categorie sur chaque label

Re, salut Pierrot,

Je viens de m'apercevoir que les labels ont bien le nombre de film par catégorie, mais lorsque je clique dessus sa m me donne une erreur par apport au module de classe

C'est pour ça que j'ai complété le post #2 à 07h13.

Notez qu'on peut aussi utiliser la propriété Tag des Labels :

Code:
Private Sub UserForm_Initialize()
    Dim i%, c As Range
    For i = 1 To UBound(a)
        Set c = Feuil2.Cells(1, i)
        Me("Label" & i) = c & " (" & Application.CountA(c.EntireColumn) - 1 & ")"
        Me("Label" & i).Tag = i
        Set a(i).LB = Me("Label" & i)
    Next
End Sub
Code:
Private Sub LB_Click()
    Dim r As Range
    Set r = Feuil2.Cells(1, Val(LB.Tag))
    Set r = r(2).Resize(Application.CountA(r.EntireColumn) - 1)
    With LB.Parent.Parent
        .ListBox1.List = r.Value
        .ListBox1.Visible = True
        .Frame1.Visible = False
        .Label22 = "Nombre de Film(s) : " & r.Count & "  dans cette Catégorie.....,"
    End With
End Sub
A+
 
Re : Nbre par categorie sur chaque label

Re,

attention si aucun film, te retournera une erreur...[/URL]

Erreur aussi si un seul film, alors utiliser :

Code:
Private Sub LB_Click()
    Dim r As Range, r1 As Range
    Set r = Feuil2.Cells(1, Val(LB.Tag))
    On Error Resume Next
    Set r1 = r(2).Resize(Application.CountA(r.EntireColumn) - 1)
    With LB.Parent.Parent
        .ListBox1.Clear
        .ListBox1.List = r1.Resize(, 2).Value 'au moins 2 éléments
        .ListBox1.Visible = True
        .Frame1.Visible = False
        .Label22 = "Nombre de Film(s) : " & .ListBox1.ListCount & "  dans cette Catégorie.....,"
    End With
End Sub
Fichier joint, voir la catégorie "Divers".

A+
 

Pièces jointes

Re : Nbre par categorie sur chaque label

Re,

une autre approche :
Code:
Option Explicit
Public WithEvents LB As MSForms.Label
Private Sub LB_Click()
    Dim r As Range
    Set r = Feuil2.Rows(1).Find(Split(LB, "(")(0), , xlValues, xlWhole)
    If Application.CountA(r.EntireColumn) = 1 Then MsgBox "pas de film...": Exit Sub
    Set r = r(2).Resize(Application.CountA(r.EntireColumn) - 1)
    With LB.Parent.Parent
        .ListBox1.Clear
        If r.Count > 1 Then .ListBox1.List = r.Value Else .ListBox1.AddItem r
        .ListBox1.Visible = True
        .Frame1.Visible = False
        .Label22.Caption = "Nombre de Film(s) : " &  .ListBox1.ListCount & "  dans cette Catégorie.....,"
    End With
End Sub
 
Dernière édition:
- 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
14
Affichages
730
Réponses
5
Affichages
445
Retour