Formule incorrecte dans la macro

Bonjour chers maîtres du VBA

La formule pour la colonne B de la feuille Sommaire est incorrecte. Elle additionne + 1 le nombre de fois qu'un employé fut requis. Par exemple, j'ai 17 fois le nom d'un employé dans le Registre, mais au sommaire il en compte 18!

Quelle serait la correction à apporter au code.

merci

Option Explicit

Private Sub Worksheet_Activate()
Dim DerLig As Integer, Référence As String, i As Integer, j As Integer
Dim Compteur_C As Integer, Compteur_D As Integer, Compteur_E As Integer, Compteur_F As Integer, Compteur_G As Integer, Compteur_H As Integer

Application.ScreenUpdating = False
DerLig = Range("A" & Rows.Count).End(xlUp).Row

Range("B4:H" & Rows.Count).ClearContents

For i = 4 To DerLig
    Référence = Range("A" & i)
    With Sheets("Registre")
        Range("B" & i) = Application.WorksheetFunction.CountIf(.Range("C:C"), Référence)
        For j = 6 To .Range("C" & Rows.Count).End(xlUp).Row
            If .Range("C" & j) = Référence Then
                If .Range("I" & j) = "R" Then Compteur_C = Compteur_C + 1
                If .Range("J" & j) = "R" Then Compteur_D = Compteur_D + 1
                If .Range("K" & j) = "Raison personnelle" Then Compteur_E = Compteur_E + 1
                If .Range("K" & j) = "Sans raison" Then Compteur_F = Compteur_F + 1
                If .Range("K" & j) = "Travaille déjà" Then Compteur_G = Compteur_G + 1
                If .Range("K" & j) = "Trop hrs/semaine" Then Compteur_H = Compteur_H + 1
            End If
        Next j

        Range("C" & i) = Compteur_C
        Range("D" & i) = Compteur_D
        Range("E" & i) = Compteur_E
        Range("F" & i) = Compteur_F
        Range("G" & i) = Compteur_G
        Range("H" & i) = Compteur_H

    End With

        Compteur_C = 0
        Compteur_D = 0
        Compteur_E = 0
        Compteur_F = 0
        Compteur_G = 0
        Compteur_H = 0
Next i

End Sub

Bonjour,

Normal

Tu as les noms qui figurent dans les premières lignes de 1 à 63

A+

Zute la liste déroulante!

merci

Y a-t-il une portion de code que je peux ajouter pour exclure les lignes 1@63?

merci pour vos lumières.

Re,

Simplement en déplaçant la liste dans une autre feuille ("Params" par exemple)

Il suffit de nommée cette liste, pour pouvoir l'utiliser en validation de donnée

Voir fichier joint

A+

D'accord, merci.

je vais simplement déplacer la liste déroulant dans une autre colonne, car je veux éviter l'onglet supplémentaire. Une solution dans le code VBA aurait été quand même super.

Merci encore

Re,

Perso je n'aime pas mélanger mes listes déroulantes avec mes données

Tu t'apercevra a tes dépends que ça pose souvent des problèmes

Un onglet est facilement masquable

Mais il est vrai que rien ne sert d'écouter les "anciens"

Dans le code il suffit de remplacer la plage C:C par une plage du style C64:C65536

A+

Non non, vous vous méprenez , j'ai un très grand respect des anciens, et je vais même suivre votre recommandation (masquer l'onglet).

bien à vous!

Rechercher des sujets similaires à "formule incorrecte macro"