Comment compter les items d'une listview

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

S

sisamio

Guest
Bonjour,
j'ai une listview qui normalement doit afficher 3 colonnes,alimenter par un tableu sur excel.
je cherche un code pour compter le nombre des items de la première et la 3eme colonne.
merci de m'aider.
 

Pièces jointes

Re : Comment compter les items d'une listview

Bonjour à tous

sisamio
Sauf erreur de ma part, je ne vois pas de Listview dans ton Userform ?
(ou alors c'est parce que aujourd'hui je suis en downgrade Excelien 😉 , je suis vais aller voir ce qu'il en ait sous XLXIII)
 
Re : Comment compter les items d'une listview

Re

Ajoute ce code, dans l'userform (pas dans un module Standard)
(Il faut que ta Listview se nomme: ListView1 pour que le code ci-dessous fonctionne)
NB: Ce code ne fait qu'alimenter la Listview, le reste de ta question reste à solutionner 😉
Code VBA:
Private Sub UserForm_Initialize()
Dim c As Range, rngEntetes As Range, rng As Range
Dim LwItem As ListItem, dCol As ColumnHeader
Set rngEntetes = Range("A1:C1")
With ListView1
For Each rng In rngEntetes
Set dCol = .ColumnHeaders.Add(, , rng.Value)
dCol.Width = .Width / 3
Next rng
.View = lvwReport
For Each c In Range("A2:A14")
Set LwItem = .ListItems.Add(, , c.Value)
LwItem.SubItems(1) = c.Offset(, 1).Value
LwItem.SubItems(2) = c.Offset(, 2).Value
Next c
End With
End Sub
 
Re : Comment compter les items d'une listview

Re

Un biais* pour résoudre la suite de ta question
(en passant par le filtre automatique)
Code VBA:
Private Sub UserForm_Initialize()
Dim c As Range, rngEntetes As Range, rng As Range
Dim LwItem As ListItem, dCol As ColumnHeader
Dim p As Range: Set p = Range("A2:A14")

Set rngEntetes = Range("A1:C1")
With ListView1
For Each rng In rngEntetes
Set dCol = .ColumnHeaders.Add(, , rng.Value)
dCol.Width = .Width / 3
Next rng
.View = lvwReport
For Each c In Range("A2:A14")
Set LwItem = .ListItems.Add(, , c.Value)
LwItem.SubItems(1) = c.Offset(, 1).Value
LwItem.SubItems(2) = c.Offset(, 2).Value
Next c
End With
Application.ScreenUpdating = False
Range("D1").AutoFilter Field:=1, Criteria1:="A"
Label4.Caption = Application.WorksheetFunction.Subtotal(3, p)
Range("D1").AutoFilter Field:=1, Criteria1:="B"
Label5.Caption = Application.WorksheetFunction.Subtotal(3, p)
Range("D1").AutoFilter Field:=1, Criteria1:="C"
Label6.Caption = Application.WorksheetFunction.Subtotal(3, p)
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
End Sub
 
Re : Comment compter les items d'une listview

salut

@ Staple : avec mon 2010, Dim LwItem As ListItem, dCol As ColumnHeader ne passe pas 😛;

Si...non, autre façon
Code:
Private Sub UserForm_Initialize()
  Dim p As Range, R As Range
  Dim LwItem, dCol
  Set p = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
  With ListView1
    For Each R In [A1:C1]
      Set dCol = .ColumnHeaders.Add(, , R.Value)
      dCol.Width = .Width / 3
    Next
    For Each R In p
      Set LwItem = .ListItems.Add(, , R.Value)
      LwItem.SubItems(1) = R.Offset(, 1).Value
      LwItem.SubItems(2) = R.Offset(, 2).Value
    Next
    .View = 3
  End With
  Label4 = "   " & Application.CountIf(p, "A")
  Label5 = "   " & Application.CountIf(p, "B")
  Label6 = "   " & Application.CountIf(p, "C")
End Sub

remarque : cela doit venir de mon implémentation* de ce contrôle (* qui embête beaucoup de monde) !
 
Dernière édition:
Re : Comment compter les items d'une listview

Re

[TABLE="width: 500"]
[TR]
[TD]Si...[/TD]
[TD]sisamio[/TD]
[/TR]
[TR]
[TD]Code testé et OK sur un PC sous XL2K3
(avec référence idoine cochée dans VBE)

Pas pensé à CountIf (plus simple que de passer par mon biais 😉







[/TD]
[TD](Cliques sur l'image pour
l'afficher en taille réelle)

sisamio.jpg[/TD]
[/TR]
[/TABLE]
 
Re : Comment compter les items d'une listview

Re

sisamio
Bah dans quel label on doit mettre le total?
(Il n'y en pas de prévu pour le total global sur ton userform à l'heure actuelle, non ?)

Sinon pour ce total, il suffit d'jouter:
Code:
MsgBox ListView1.ListItems.Count

PS: Si tu avais fait ALT+F11 puis F1 , tu aurais pu trouver tout seul...🙄
 
Dernière édition:
Re : Comment compter les items d'une listview

Télécharger UsFListCombo2Dépendant.xlsm gratuitement - PackUpload

voici l'application en entier pour avoir une aidé
 
Dernière modification par un modérateur:
Re : Comment compter les items d'une listview

Re

sisamio
Bah dans quel label on doit mettre le total?
(Il n'y en pas de prévu pour le total global sur ton userform à l'heure actuelle, non ?)

Sinon pour ce total, il suffit d'jouter:
Code:
MsgBox ListView1.ListItems.Count

PS: Si tu avais fait ALT+F11 puis F1 , tu aurais pu trouver tout seul...🙄



voici l'application en entier pour avoir une aidé :
Télécharger UsFListCombo2Dépendant.xlsm gratuitement - PackUpload
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
295
Réponses
5
Affichages
537
Retour