Compter le nombre de modalités

Résolu
jeepipy Messages postés 88 Statut Membre -  
jeepipy Messages postés 88 Statut Membre -
Bonjour,

Je cherche une formule en VBA pour obtenir le nombre de modalités différentes d'une colonne.

Je vous remercie.
Cordialement

5 réponses

Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonjour
sans VBA, pour un champ de B2 à B28, à adapter

=SOMME(SI(B2:B38<>"";1/NB.SI(B2:B38;B2:B38)))

formule matricielle à entrer avec la touche enter en maintenant les touches ctrl et shift enfoncées
crdlmnt
0
jeepipy Messages postés 88 Statut Membre 155
 
Bonsoir Vaucluse,
je vous remercie mais je recherche une formule vba svp.
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

tu revalides la formule en enregistrement de macro pour l'avoir en anglais et R1C1.
Plus qu'à la mettre dans un n=Evaluate("ta_formule")
eric
0
jeepipy Messages postés 88 Statut Membre 155
 
Bonjour Eric,

je vous remercie.
La solution se précise:
la formule Range("G11") = Evaluate("=SUMPRODUCT( 1/COUNTIF(AF3:AF242,AF3:AF242) )") fonctionne bien.
Mais je voudrais travailler sur une colonne dont la taille est dynamique et la formule ci-dessous renvoie une erreur "#valeur".
Range("G11") = Evaluate("=SUMPRODUCT( 1/COUNTIF(AF3:AF " & der_lig & ",AF3:AF" & der_lig & ") )")

Merci de votre aide.

Bonne journée.
0
michel_m Messages postés 18903 Statut Contributeur 3 317
 
Bonjour à tous

Puisque tu veux utiliser du VBa, il y a des objets "prets à cuire" qui existent dans ce langage. dans ton cas l'objet dictionary


par exemple avec colonne de taille variable

Option Explicit
'--------
Sub decompter_occurences()
Dim Dico As Object, Derlig As Integer, Tablo
Dim Idx As Integer

Application.ScreenUpdating = False
With Sheets(1)
Set Dico = CreateObject("scripting.dictionary")
Derlig = .Columns("G").Find(what:="*", searchdirection:=xlPrevious).Row
Tablo = .Range("G2:G" & Derlig)
For Idx = 1 To UBound(Tablo)
If Not Dico.exists(Tablo(Idx, 1)) Then: Dico.Add Tablo(Idx, 1), ""
Next

MsgBox Dico.Count & " occurences colonne G"
End With
End Sub


la maquette:
https://mon-partage.fr/f/McOHUqDR/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeepipy Messages postés 88 Statut Membre 155
 
Bonjour Michel,

je vous remercie de votre réponse.
C'est plus compliqué pour moi mais cela fonctionne nickel.

Merci à tous.
0