Comtage de lignes dans excel vba

Fermé
débutant_vba - 6 nov. 2012 à 13:04
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 6 nov. 2012 à 17:59
Bonjour,
Je suis débutant en vba et je voudrais faire une boucle qui me permet de compter combien de fois un chiffre est présent dans une série de chiffres.
Plus précisément:
Dans la colonne A j'ai environ 3000 valeurs qui possèdent un des 100 choix possibles (choix1, choix 2, choix 3 etc..). Je voudrais faire une macro qui me permettra de calculer combien il y a t-il de valeur pour chaque choix.
Je voudrais que le résultat s'affiche dans la colonne B, de B1 jusqu'à B100.

Merci par avance de votre aide

A voir également:

4 réponses

Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 1 452
6 nov. 2012 à 15:21
Bonjour,
Pourquoi pas simplement avec une fonction :
en [B1] =NB.SI(A:A;"Choix 1")
en [B2] =NB.SI(A:A;"Choix 2")
............
en [B100] =NB.SI(A:A;"Choix 100")

0
débutant_vba
6 nov. 2012 à 15:32
J'ai pensé à cette solution, mais dans ce cas je dois rataper à la main 100 fois le choix et j'ai peur de ne pas omettre qqch.
0
Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 1 452
Modifié par Le Pingou le 6/11/2012 à 15:56
Bonjour,
Ou se trouve votre liste des choix ?
Quelles sont les valeurs de ces choix..?

Voir exemple : https://www.cjoint.com/?3Kgp3I3LCvR


Salutations.
Le Pingou
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 6/11/2012 à 16:10
Bonjour,

Cela se fait En 5 minutes avec un Tableau Croisé Dynamique sans se prendre la t^te avec des formules et n'importe quel texte dans la colonne A

mais si on tient vraiment à une macro (pourquoi?... avant de penser Macro, penser XL)
en voici une pour le fun vite fait sur le gaz

Sub recenser_choix() 
Dim D_choix As Object, plage As Range 
Dim derlig As Integer, cptr As Integer 
Dim T_in(), uniq(), T_nbre(0 To 99, 0 To 1) 

Application.ScreenUpdating = False 
Set D_choix = CreateObject("scripting.dictionary") 
derlig = Columns("A").Find("*", , , , , xlPrevious).Row 
Set plage = Range("A1:A" & derlig) 
T_in = Application.Transpose(plage.Value) 

For cptr = 1 To derlig 
     If Not D_choix.exists(T_in(cptr)) Then D_choix.Add T_in(cptr), "" 
Next 
uniq = D_choix.keys 
For cptr = 0 To UBound(uniq) 
     T_nbre(cptr, 0) = uniq(cptr) 
     T_nbre(cptr, 1) = Application.CountIf(plage, uniq(cptr)) 
Next 

     Range("B1:C100") = T_nbre 
End Sub 


Michel
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
6 nov. 2012 à 17:59
0