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 :p;

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)

sisamio.jpg
 

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...:rolleyes:
 
Dernière édition:

sisamio

XLDnaute Nouveau
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...:rolleyes:



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

Statistiques des forums

Discussions
312 088
Messages
2 085 203
Membres
102 818
dernier inscrit
NeoMaint