Compter le nombre de fois où un mot apparaît dans une colonne donnée

[Résolu]
Signaler
Messages postés
431
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
17 novembre 2008
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour,

Dans un tableau, je souhaite compter le nombre de fois où le mot "incident" apparaît dans la colonne "B3".
Sachant que le nombre total d'enregistrement dans la colonne est variable.

Merci beaucoup pour votre aide.

Cdt,

9 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Est ce que l'enregistreur de macro ne peut pas t'aider?

A l'aide d'une boucle et d'une mémorisation de la premiere ligne trouver (pour ne pas boucler infiniment).

 Columns("B:B").Select
    Selection.Find(What:="incident", After:=ActiveCell, LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False).Activate

NOTE: B3 n'est pas une colonne..

@+,   Ju£i?n
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

Comme Julien te le précise, il faut utiliser l'instruction Find.
Après le Selection.Find(What:="incident", ... mettre
Find.Next (c'est ça qui devra être bouclé)

++
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,


Essaie ceci.









    Dim NumFois As Long 
    Dim Li As Long 
    Dim Tmp As Long 
    Columns("B:B").Select 
    On Error Resume Next 
        Call Selection.Find(What:="incident", After:=ActiveCell, LookIn:=xlValues, _ 
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _ 
        MatchCase:=False).Activate 

    If Err.Number = 91 Then 
        MsgBox "Pas trouver" 
        Call Err.Clear 
    Else 
        Li = ActiveCell.Row 
        If Li <> 0 Then NumFois = NumFois + 1 
        While Tmp <> Li 
            Selection.FindNext(After:=ActiveCell).Activate 
            Tmp = ActiveCell.Row 
            NumFois = NumFois + 1 
        Wend 

        MsgBox NumFois - 1 
    End If 
    On Error GoTo 0 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       







 






@+,   Ju£i?n
Messages postés
431
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
17 novembre 2008

Merci beaucoup,

C'est exact, je voulais dire B, pardon.

C'est en effet la fonction qu'il me faut :D
Mais comment compter le nombre de fois où il est trouvé ?
Je dois bidouiller une sorte de compteur ou il existe une fonction ?

Merci encore.
Messages postés
431
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
17 novembre 2008

C'est excellent,

Merci mille fois les gars !!!
Toujours là pour aider, c'est gentil, c'est cool

Sûrement à bientôt !!!
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Salut,


Une simple formule ne pourrait pas suffire ?

NB.SI(B:B;"*incident*")

MPi
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
6
Je n'osais pas le dire, et comme je venais de mettre des formules dans 2 autres posts
Bien content que quelqu'un d'autre s'y soit collé

Molenn
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Molenn, je pensais justement à toi en répondant... ¦¬)

MPi
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
>528680 Molenn, =6078 MPi: je savais (je supposais) qu une formule existait pour faire cela, mais je ne connais pas assez Excel pour la donner, donc je propose ce que je sais faire (mais cela Molenn le savais déjà)

En plus en sachant que vous n'êtes jamais loin je savais que cela ne valais pas la peine de passer trois 3 heures a chercher la formule alors que vous vous la donner en 5 minutes même pas.

@+,   Ju£i?n