Compter les nombres de lignes identiques en vba excel

Résolu/Fermé
betou34 Messages postés 3 Date d'inscription vendredi 22 mai 2015 Statut Membre Dernière intervention 5 juin 2015 - Modifié par betou34 le 22/05/2015 à 09:05
betou34 Messages postés 3 Date d'inscription vendredi 22 mai 2015 Statut Membre Dernière intervention 5 juin 2015 - 25 mai 2015 à 08:48
J'avoue que je suis encore un profane en matières de programmation vba puisque ça fait depuis peu que je la pratique. Mon problème c'est que j'ai une base de donnée d'une colonne et de 17000 lignes à peu près. Ces 17000 lignes prennent une valeur allant de 1 à 4500 et je voudrais compter le nombre de fois que chaque valeur apparaissent dans ces 17000 lignes et ensuite copier dans une nouvelle feuille. J'ai pu faire le code pour une valeur particulière mais ce n'est pas évident de refaire la même opération 4399 fois!!! Alors je voudrais savoir si c'est possible de généraliser le code sans avoir à répéter l'opération des milliers de fois et en passant si quelqu'un peu m'aider!!!!. Merci d'avance!!!!

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
22 mai 2015 à 09:28
Bonjour,
'<= si si ça le fait!


Regarde ici : http://boisgontierjacques.free.fr/
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
22 mai 2015 à 13:10
Pardon, le lien ne pointe pas sur la bonne page...

Le code extrait du site ci-dessus est :
Sub CompteItems()
  Set mondico = CreateObject("Scripting.Dictionary")
  a = Range("a2:a" & [a65000].End(xlUp).Row)   ' ADAPTER LA COLONNE
  For i = LBound(a) To UBound(a)
    mondico(a(i, 1)) = mondico(a(i, 1)) + 1
  Next i
With Sheets(2) 'ADAPTER LA FEUILLE D'AFFICHAGE DES RESULTATS
  .[c2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
  .[d2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
  .[C1].Sort Key1:=[C2], Order1:=xlAscending, Header:=xlYes
End With
End Sub
0
betou34 Messages postés 3 Date d'inscription vendredi 22 mai 2015 Statut Membre Dernière intervention 5 juin 2015 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
25 mai 2015 à 08:48
merci bcp mais même avec le premier lien ktu m'as fourni, j'ai pu trouver un code ki a pu résoudre le pbm ms avec klk modification!!!!! Mais quoiqu'il en soit, je vaisquand même tester le code ke tu m'as donné!
0
QueenAS Messages postés 6 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 juin 2015
22 mai 2015 à 12:22
je suis moi aussi profane, mais essaye des boucles:
k = 0
for i = 1 to 17000
for j = 1 to 17000
while cell (i,1) = cell (j,1)
k = k+1
wend
next
next
Bon l'incovenient c'est pas tout à fait exact mais tu peux essayer de faire dans le genre...
Cdlt
-3