Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comment compter les items d'une listview

sisamio

XLDnaute Nouveau
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

  • compteur listview.xlsm
    17.7 KB · Affichages: 145

Staple1600

XLDnaute Barbatruc
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)
 

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Si...

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
Re : Comment compter les items d'une listview

Re

Si...sisamio
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







(Cliques sur l'image pour
l'afficher en taille réelle)

 

Staple1600

XLDnaute Barbatruc
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:

sisamio

XLDnaute Nouveau
Re : Comment compter les items d'une listview




voici l'application en entier pour avoir une aidé :
Télécharger UsFListCombo2Dépendant.xlsm gratuitement - PackUpload
 
Dernière édition:

Discussions similaires

Réponses
19
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…