un truc comme ça en supposant que ta listbox s'appelle stock
compteur=0
for I=0 to stock.listcount-1 if stock.list(I)="Pomme" then compteur=compteur+1 next
A+
Salut,
Comment faire en vba pour compter dans un listbox le nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir combien de fois le mot "Pomme" apparaît.
Merci.
LE TROLL
Bonjour Kevin,
Voici une procédure qui fonctionne (tu peux copier coller, changer le nom de la procédure comme tu veux, si tu as d'autres questions tu demandes (on peut aussi le faire à l'aide de plusieurs listes (le tri)), voici:
Sub Form_Activate() ' nom précédure (peut être changé) ' METTRE OBJET ---> List1 ' List1.Clear ' pour exemple, chargement list1 List1.AddItem "orange" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "orange" List1.AddItem "cerise" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "citron" List1.AddItem "citron" List1.AddItem "orange" ' Dim Un() As String ' tableau vide Dim Deux() As String Dim Nb() As Long Dim sup As String Dim resultat As String Dim i As Long ' variables Dim j As Long Dim k As Long Dim l As Long ' If List1.ListCount < 0 Then: Exit Sub ' liste vide ReDim Un(List1.ListCount) ' espece(NbEnregisListe ReDim Deux(List1.ListCount) ReDim Nb(List1.ListCount) ' For i = 1 To List1.ListCount ' charge Un<-List1 Un(i) = List1.List(i - 1) Next i '----- For i = 1 To List1.ListCount ' TEST k = 0 For j = 1 To List1.ListCount ' compte combien de chaque If Un(i) <> "" And Un(i) = List1.List(j - 1) Then k = k + 1 Next j Deux(i) = Un(i) & " " & k ' écrit objet + nombre ' sup = Un(i) ' suprime objet de la recherche For l = 1 To List1.ListCount If sup = Un(l) Then: Un(l) = "" Next l Next i ' resultat = "" k = 0 For i = 1 To List1.ListCount ' retasse le 0 If Len(Deux(i)) > 2 Then resultat = resultat & Deux(i) & Chr(13) & Chr(10) k = k + 1 End If Next i resultat = resultat & "total des échantillons = " & List1.ListCount & Chr(13) & Chr(10) resultat = resultat & "Espèces d'échantillons différentes = " & k & Chr(13) & Chr(10) ' MsgBox resultat End Sub -----------------
"Kévin" a écrit dans le message de news: 21bc01c4dcfb$f401fed0$ Salut,
Comment faire en vba pour compter dans un listbox le nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir combien de fois le mot "Pomme" apparaît.
Merci.
Bonjour Kevin,
Voici une procédure qui fonctionne (tu peux copier coller, changer le
nom de la procédure comme tu veux, si tu as d'autres questions tu demandes
(on peut aussi le faire à l'aide de plusieurs listes (le tri)), voici:
Sub Form_Activate() ' nom précédure (peut être changé)
' METTRE OBJET ---> List1
'
List1.Clear ' pour exemple, chargement list1
List1.AddItem "orange"
List1.AddItem "poire"
List1.AddItem "orange"
List1.AddItem "orange"
List1.AddItem "cerise"
List1.AddItem "poire"
List1.AddItem "orange"
List1.AddItem "citron"
List1.AddItem "citron"
List1.AddItem "orange"
'
Dim Un() As String ' tableau vide
Dim Deux() As String
Dim Nb() As Long
Dim sup As String
Dim resultat As String
Dim i As Long ' variables
Dim j As Long
Dim k As Long
Dim l As Long
'
If List1.ListCount < 0 Then: Exit Sub ' liste vide
ReDim Un(List1.ListCount) ' espece(NbEnregisListe
ReDim Deux(List1.ListCount)
ReDim Nb(List1.ListCount)
'
For i = 1 To List1.ListCount ' charge Un<-List1
Un(i) = List1.List(i - 1)
Next i
'-----
For i = 1 To List1.ListCount ' TEST
k = 0
For j = 1 To List1.ListCount ' compte combien de chaque
If Un(i) <> "" And Un(i) = List1.List(j - 1) Then k = k + 1
Next j
Deux(i) = Un(i) & " " & k ' écrit objet + nombre
'
sup = Un(i) ' suprime objet de la recherche
For l = 1 To List1.ListCount
If sup = Un(l) Then: Un(l) = ""
Next l
Next i
'
resultat = ""
k = 0
For i = 1 To List1.ListCount ' retasse le 0
If Len(Deux(i)) > 2 Then
resultat = resultat & Deux(i) & Chr(13) & Chr(10)
k = k + 1
End If
Next i
resultat = resultat & "total des échantillons = " & List1.ListCount &
Chr(13) & Chr(10)
resultat = resultat & "Espèces d'échantillons différentes = " & k &
Chr(13) & Chr(10)
'
MsgBox resultat
End Sub
-----------------
"Kévin" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 21bc01c4dcfb$f401fed0$a301280a@phx.gbl...
Salut,
Comment faire en vba pour compter dans un listbox le
nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir
combien de fois le mot "Pomme" apparaît.
Voici une procédure qui fonctionne (tu peux copier coller, changer le nom de la procédure comme tu veux, si tu as d'autres questions tu demandes (on peut aussi le faire à l'aide de plusieurs listes (le tri)), voici:
Sub Form_Activate() ' nom précédure (peut être changé) ' METTRE OBJET ---> List1 ' List1.Clear ' pour exemple, chargement list1 List1.AddItem "orange" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "orange" List1.AddItem "cerise" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "citron" List1.AddItem "citron" List1.AddItem "orange" ' Dim Un() As String ' tableau vide Dim Deux() As String Dim Nb() As Long Dim sup As String Dim resultat As String Dim i As Long ' variables Dim j As Long Dim k As Long Dim l As Long ' If List1.ListCount < 0 Then: Exit Sub ' liste vide ReDim Un(List1.ListCount) ' espece(NbEnregisListe ReDim Deux(List1.ListCount) ReDim Nb(List1.ListCount) ' For i = 1 To List1.ListCount ' charge Un<-List1 Un(i) = List1.List(i - 1) Next i '----- For i = 1 To List1.ListCount ' TEST k = 0 For j = 1 To List1.ListCount ' compte combien de chaque If Un(i) <> "" And Un(i) = List1.List(j - 1) Then k = k + 1 Next j Deux(i) = Un(i) & " " & k ' écrit objet + nombre ' sup = Un(i) ' suprime objet de la recherche For l = 1 To List1.ListCount If sup = Un(l) Then: Un(l) = "" Next l Next i ' resultat = "" k = 0 For i = 1 To List1.ListCount ' retasse le 0 If Len(Deux(i)) > 2 Then resultat = resultat & Deux(i) & Chr(13) & Chr(10) k = k + 1 End If Next i resultat = resultat & "total des échantillons = " & List1.ListCount & Chr(13) & Chr(10) resultat = resultat & "Espèces d'échantillons différentes = " & k & Chr(13) & Chr(10) ' MsgBox resultat End Sub -----------------
"Kévin" a écrit dans le message de news: 21bc01c4dcfb$f401fed0$ Salut,
Comment faire en vba pour compter dans un listbox le nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir combien de fois le mot "Pomme" apparaît.
Merci.
LE TROLL
Bonjour Kevin,
Voici une procédure qui fonctionne (tu peux copier coller, changer le nom de la procédure comme tu veux, si tu as d'autres questions tu demandes (on peut aussi le faire à l'aide de plusieurs listes (le tri)), voici:
Sub Form_Activate() ' nom précédure (peut être changé) ' METTRE OBJET ---> List1 ' List1.Clear ' pour exemple, chargement list1 List1.AddItem "orange" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "orange" List1.AddItem "cerise" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "citron" List1.AddItem "citron" List1.AddItem "orange" ' Dim Un() As String ' tableau vide Dim Deux() As String Dim Nb() As Long Dim sup As String Dim resultat As String Dim i As Long ' variables Dim j As Long Dim k As Long Dim l As Long ' If List1.ListCount < 0 Then: Exit Sub ' liste vide ReDim Un(List1.ListCount) ' espece(NbEnregisListe ReDim Deux(List1.ListCount) ReDim Nb(List1.ListCount) ' For i = 1 To List1.ListCount ' charge Un<-List1 Un(i) = List1.List(i - 1) Next i '----- For i = 1 To List1.ListCount ' TEST k = 0 For j = 1 To List1.ListCount ' compte combien de chaque If Un(i) <> "" And Un(i) = List1.List(j - 1) Then k = k + 1 Next j Deux(i) = Un(i) & " " & k ' écrit objet + nombre ' sup = Un(i) ' suprime objet de la recherche For l = 1 To List1.ListCount If sup = Un(l) Then: Un(l) = "" Next l Next i ' resultat = "" k = 0 For i = 1 To List1.ListCount ' retasse le 0 If Len(Deux(i)) > 2 Then resultat = resultat & Deux(i) & Chr(13) & Chr(10) k = k + 1 End If Next i resultat = resultat & "total des échantillons = " & List1.ListCount & Chr(13) & Chr(10) resultat = resultat & "Espèces d'échantillons différentes = " & k & Chr(13) & Chr(10) ' MsgBox resultat End Sub -----------------
"Kévin" a écrit dans le message de news: 21bc01c4dcfb$f401fed0$ Salut,
Comment faire en vba pour compter dans un listbox le nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir combien de fois le mot "Pomme" apparaît.
Merci.
Bonjour Kevin,
Voici une procédure qui fonctionne (tu peux copier coller, changer le
nom de la procédure comme tu veux, si tu as d'autres questions tu demandes
(on peut aussi le faire à l'aide de plusieurs listes (le tri)), voici:
Sub Form_Activate() ' nom précédure (peut être changé)
' METTRE OBJET ---> List1
'
List1.Clear ' pour exemple, chargement list1
List1.AddItem "orange"
List1.AddItem "poire"
List1.AddItem "orange"
List1.AddItem "orange"
List1.AddItem "cerise"
List1.AddItem "poire"
List1.AddItem "orange"
List1.AddItem "citron"
List1.AddItem "citron"
List1.AddItem "orange"
'
Dim Un() As String ' tableau vide
Dim Deux() As String
Dim Nb() As Long
Dim sup As String
Dim resultat As String
Dim i As Long ' variables
Dim j As Long
Dim k As Long
Dim l As Long
'
If List1.ListCount < 0 Then: Exit Sub ' liste vide
ReDim Un(List1.ListCount) ' espece(NbEnregisListe
ReDim Deux(List1.ListCount)
ReDim Nb(List1.ListCount)
'
For i = 1 To List1.ListCount ' charge Un<-List1
Un(i) = List1.List(i - 1)
Next i
'-----
For i = 1 To List1.ListCount ' TEST
k = 0
For j = 1 To List1.ListCount ' compte combien de chaque
If Un(i) <> "" And Un(i) = List1.List(j - 1) Then k = k + 1
Next j
Deux(i) = Un(i) & " " & k ' écrit objet + nombre
'
sup = Un(i) ' suprime objet de la recherche
For l = 1 To List1.ListCount
If sup = Un(l) Then: Un(l) = ""
Next l
Next i
'
resultat = ""
k = 0
For i = 1 To List1.ListCount ' retasse le 0
If Len(Deux(i)) > 2 Then
resultat = resultat & Deux(i) & Chr(13) & Chr(10)
k = k + 1
End If
Next i
resultat = resultat & "total des échantillons = " & List1.ListCount &
Chr(13) & Chr(10)
resultat = resultat & "Espèces d'échantillons différentes = " & k &
Chr(13) & Chr(10)
'
MsgBox resultat
End Sub
-----------------
"Kévin" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 21bc01c4dcfb$f401fed0$a301280a@phx.gbl...
Salut,
Comment faire en vba pour compter dans un listbox le
nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir
combien de fois le mot "Pomme" apparaît.
Voici une procédure qui fonctionne (tu peux copier coller, changer le nom de la procédure comme tu veux, si tu as d'autres questions tu demandes (on peut aussi le faire à l'aide de plusieurs listes (le tri)), voici:
Sub Form_Activate() ' nom précédure (peut être changé) ' METTRE OBJET ---> List1 ' List1.Clear ' pour exemple, chargement list1 List1.AddItem "orange" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "orange" List1.AddItem "cerise" List1.AddItem "poire" List1.AddItem "orange" List1.AddItem "citron" List1.AddItem "citron" List1.AddItem "orange" ' Dim Un() As String ' tableau vide Dim Deux() As String Dim Nb() As Long Dim sup As String Dim resultat As String Dim i As Long ' variables Dim j As Long Dim k As Long Dim l As Long ' If List1.ListCount < 0 Then: Exit Sub ' liste vide ReDim Un(List1.ListCount) ' espece(NbEnregisListe ReDim Deux(List1.ListCount) ReDim Nb(List1.ListCount) ' For i = 1 To List1.ListCount ' charge Un<-List1 Un(i) = List1.List(i - 1) Next i '----- For i = 1 To List1.ListCount ' TEST k = 0 For j = 1 To List1.ListCount ' compte combien de chaque If Un(i) <> "" And Un(i) = List1.List(j - 1) Then k = k + 1 Next j Deux(i) = Un(i) & " " & k ' écrit objet + nombre ' sup = Un(i) ' suprime objet de la recherche For l = 1 To List1.ListCount If sup = Un(l) Then: Un(l) = "" Next l Next i ' resultat = "" k = 0 For i = 1 To List1.ListCount ' retasse le 0 If Len(Deux(i)) > 2 Then resultat = resultat & Deux(i) & Chr(13) & Chr(10) k = k + 1 End If Next i resultat = resultat & "total des échantillons = " & List1.ListCount & Chr(13) & Chr(10) resultat = resultat & "Espèces d'échantillons différentes = " & k & Chr(13) & Chr(10) ' MsgBox resultat End Sub -----------------
"Kévin" a écrit dans le message de news: 21bc01c4dcfb$f401fed0$ Salut,
Comment faire en vba pour compter dans un listbox le nombre de fois où apparaît un élément?
Par exemple dans la listbox "Stock", je veux savoir combien de fois le mot "Pomme" apparaît.