Compter le nombre de modalités

Résolu/Fermé
jeepipy Messages postés 74 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 9 août 2023 - 6 oct. 2018 à 07:47
jeepipy Messages postés 74 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 9 août 2023 - 8 oct. 2018 à 11:34
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 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
6 oct. 2018 à 07:58
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 74 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 9 août 2023 155
6 oct. 2018 à 19:47
Bonsoir Vaucluse,
je vous remercie mais je recherche une formule vba svp.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
6 oct. 2018 à 19:53
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 74 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 9 août 2023 155
8 oct. 2018 à 05:53
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
8 oct. 2018 à 08:57
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 74 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 9 août 2023 155
8 oct. 2018 à 11:34
Bonjour Michel,

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

Merci à tous.
0