Menu

Compter le nombre de modalités [Résolu]

Messages postés
59
Date d'inscription
samedi 9 janvier 2010
Dernière intervention
2 janvier 2019
- - Dernière réponse : jeepipy
Messages postés
59
Date d'inscription
samedi 9 janvier 2010
Dernière intervention
2 janvier 2019
- 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
Afficher la suite 

Votre réponse

5 réponses

Messages postés
23535
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
21 février 2019
5636
0
Merci
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
Commenter la réponse de Vaucluse
Messages postés
59
Date d'inscription
samedi 9 janvier 2010
Dernière intervention
2 janvier 2019
0
Merci
Bonsoir Vaucluse,
je vous remercie mais je recherche une formule vba svp.
eriiic
Messages postés
22424
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 février 2019
7215 -
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
Commenter la réponse de jeepipy
Messages postés
59
Date d'inscription
samedi 9 janvier 2010
Dernière intervention
2 janvier 2019
0
Merci
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.
Commenter la réponse de jeepipy
Messages postés
15687
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 février 2019
3615
0
Merci
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/
Commenter la réponse de michel_m
Messages postés
59
Date d'inscription
samedi 9 janvier 2010
Dernière intervention
2 janvier 2019
0
Merci
Bonjour Michel,

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

Merci à tous.
Commenter la réponse de jeepipy