compte nombre d'occurrence

  • Initiateur de la discussion Initiateur de la discussion meldja
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

meldja

XLDnaute Impliqué
Salut,
Au risque de me faire pourrir, après une recherche dans le moteur de recherche de ce site et sur google, je n'ai toujours rien trouvé concernant mon problème.
Voila, je cherche à trouver le nombre d'occurrence dans une plage de cellules.
Sujet bateau et maintes fois traité ; néanmoins, je n'ai trouvé aucune solution (je tiens à préciser que nous bénéficions de la connexion la plus bidon au monde ; on est encore en analogique avec un débit réel oscillant entre 10 et 20 ko/s et des déconnexions toutes les 20 mn en moyenne).
Mon problème est de chercher une occurrence dans un plage de cellules. Pour test, j'ai choisi une plage comprenant 6 lignes et 2 colonnes.
Dans mon fichier test, il s'agit de la colonne 1 à 2 et de la ligne 3 à 8.
Après recherche sur ce site, j'ai essayé d'adapter un code qui boucle sur les lignes et les colonnes.
Le critère recherche les cellules égales à 2. Voici le code adapté :
Code:
Dim c As Range, Compte As Integer, l As Integer, cl As Integer
Set c = Range("A3:B8")
For l = 3 To 8
    For cl = 1 To 2
        If Cells(l & cl) = 2 Then Compte = Compte + 1
    Next cl
Next l
    Range("A1") = Compte

La cellule A1 prend la valeur 0, donc la macro ne marche pas puisque dans ma plage, il y a 5 cellules égales à 2.
Si je reprends le code colonne par colonne (dans mon cas, ce n'est pas compliqué puisqu'il n'y a que 2 colonnes, ça marche).
Code:
Dim c As Range, Compte As Integer, l As Integer, cl As Integer, nb As Integer
nb = 2
Set c = Range("A3:B8")
For l = 3 To 8
    If Range("A" & l) = nb Then Compte = Compte + 1
    If Range("B" & l) = nb Then Compte = Compte + 1
Next l
MsgBox "Il y a " & Compte & " cellule(s)" & vbCr & vbCr & _
"qui contiennent la valeur " & nb
    Range("A1") = Compte
Le sujet à dû être traité souvent, mais je n'arrive pas à trouver la solution, je tombe sur des sujets qui n'ont rien à voir avec mon problème.
Suis-je obligé de traiter colonne par colonne ou y a-t-il une autre solution ?
Au risque d'énerver les nantis du haut débit, je me risque à poster ce message (si j'y arrive parce que je n'arrive plus à me reconnecter).
Merci d'avance et SVP évitez toutes remarques désobligeantes s'il existe un lien concernant mon interrogation.
 
Re : compte nombre d'occurrence

Bonjour,

avec la formule suivante à placer en A1

=NB.SI(A3:B8;2)



ton erreur est ici:

If Cells(l & cl) = 2 Then Compte = Compte + 1

à remplacer par

If Cells(l , cl) = 2 Then Compte = Compte + 1

à+
Philippe
 
Dernière édition:
Re : compte nombre d'occurrence

Bonsoir,

Je ne vois pas pourquoi nous serions désobligeant!?

En tous cas voici une façon de faire: (Equivalent VBA de Nb.Si)

Code:
Dim Compte as Long  
Dim res As Variant
    res = Application.CountIf(Range("A3:B8"), nb)
    If Not IsError(res) Then Compte = res Else Compte = 0

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
270
Réponses
4
Affichages
407
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
332
Réponses
16
Affichages
1 K
Retour