Comptabiliser le nombre de fois que se répète un mot dans un

je veux compter avec un macro le nembre de fois de répéter un mot dans une colonne suivant un autre donner

voici un fichier excel que se présente mon besoins

Prière de me idée SVP

36classeur1.xlsx (10.61 Ko)

Salut,

En I4, tu places cette formule que tu incrémentes sur la droite et vers le bas :

=SOMMEPROD(($A:$A=$H4)*($D:$D=I$3))

Cordialement.

Bonjour,

Ajoute ces formules dans tes cellules

=NB.SI(B2:B46;"Nicolas")    

=NB.SI(B4:B48;"Edouard")    

=NB.SI(B6:B50;"Manel")    

Amicalement

Pierrot


Bonjour Yvouille,

Excuses-moi, je n'avais pas vu ton message

Amitiés

pierrot

Yvouille a écrit :

Salut,

En I4, tu places cette formule que tu incrémentes sur la droite et vers le bas :

=SOMMEPROD(($A:$A=$H4)*($D:$D=I$3))

Cordialement.

Merci Yvouille , mais est ce que je peux faire cette opération avec un Macro ou non ?

Merci d'avance

Bonjour Btmed, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet
Dim TC As Variant
Dim I As Integer
Dim J As Byte
Dim TD(2, 2) As Variant

Set O = Sheets("Pointage")
TC = O.Range("A1").CurrentRegion
For I = 2 To UBound(TC, 1)
    Select Case TC(I, 1)
        Case "01"
            Select Case TC(I, 4)
                Case "P"
                    TD(0, 0) = TD(0, 0) + 1
                Case "JFP"
                    TD(0, 1) = TD(0, 1) + 1
                Case "A"
                    TD(0, 2) = TD(0, 2) + 1
            End Select
        Case "02"
            Select Case TC(I, 4)
                Case "P"
                    TD(1, 0) = TD(1, 0) + 1
                Case "JFP"
                    TD(1, 1) = TD(1, 1) + 1
                Case "A"
                    TD(1, 2) = TD(1, 2) + 1
            End Select
        Case "03"
            Select Case TC(I, 4)
                Case "P"
                    TD(2, 0) = TD(2, 0) + 1
                Case "JFP"
                    TD(2, 1) = TD(2, 1) + 1
                Case "A"
                    TD(2, 2) = TD(2, 2) + 1
            End Select
    End Select
Next I
For I = 0 To 2
    For J = 0 To 2
        O.Cells(I + 4, J + 9).Value = TD(I, J)
    Next J
Next I
End Sub
ThauThème a écrit :

Bonjour Btmed, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet
Dim TC As Variant
Dim I As Integer
Dim J As Byte
Dim TD(2, 2) As Variant

Set O = Sheets("Pointage")
TC = O.Range("A1").CurrentRegion
For I = 2 To UBound(TC, 1)
    Select Case TC(I, 1)
        Case "01"
            Select Case TC(I, 4)
                Case "P"
                    TD(0, 0) = TD(0, 0) + 1
                Case "JFP"
                    TD(0, 1) = TD(0, 1) + 1
                Case "A"
                    TD(0, 2) = TD(0, 2) + 1
            End Select
        Case "02"
            Select Case TC(I, 4)
                Case "P"
                    TD(1, 0) = TD(1, 0) + 1
                Case "JFP"
                    TD(1, 1) = TD(1, 1) + 1
                Case "A"
                    TD(1, 2) = TD(1, 2) + 1
            End Select
        Case "03"
            Select Case TC(I, 4)
                Case "P"
                    TD(2, 0) = TD(2, 0) + 1
                Case "JFP"
                    TD(2, 1) = TD(2, 1) + 1
                Case "A"
                    TD(2, 2) = TD(2, 2) + 1
            End Select
    End Select
Next I
For I = 0 To 2
    For J = 0 To 2
        O.Cells(I + 4, J + 9).Value = TD(I, J)
    Next J
Next I
End Sub

OUI, Merci Beaucoup Mr ThauThème

Bonjour, bonjour !

Désolé d'intervenir après la bataille mais encore une fois les codes les plus efficaces sont ceux

donnant la priorité aux fonctionnalités d'Excel sans réinventer la roue donc dans ce cas sans boucle !

En reprenant par exemple l'idée d'Yvouille via une formule SOMMEPROD corrigée :

Sub Demo()
With Feuil1
                                 N$ = .Cells(1).CurrentRegion.Rows.Count
    With .[H4].CurrentRegion
        With .Cells(2, 2).Resize(.Rows.Count - 1, .Columns.Count - 1)
             .FormulaR1C1 = "=SUMPRODUCT((R2C1:R" & N & "C1=RC8)*(R2C4:R" & N & "C4=R3C))"
                 .Formula = .Value
        End With
    End With
End With
End Sub
Rechercher des sujets similaires à "comptabiliser nombre fois que repete mot"