Compter ligne selon valeur de la colonne

Fermé
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 - 16 sept. 2019 à 16:27
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 - 17 sept. 2019 à 17:01
Bonjour,

J'aimerai compter les lignes spécifiques d'une colonne selon la valeur d'une autre colonne.

par ex. dans ma colonne "C" j'ai les éléments "B101", "B102" plusieurs fois, j'aimerai les compter dans les textbox séparer si on a "YES" qui est marquée dans la colonne "G"

j'arrive à compter les éléments B101 et B102, mais je ne sais pas comment faire avec la condition de colonne G.

merci de l'aide.

voir le fichier d'exemple. et l'image.

https://www.cjoint.com/c/IIqoAwMuhiI




Configuration: Windows / Edge 18.17763
A voir également:

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
17 sept. 2019 à 09:21
Bonjour,

Suivant le même principe que dans https://forums.commentcamarche.net/forum/affich-36211123-trouver-des-meme-mot-et-afficher-dans-textbox#p36215347 ...
Si tu devais le faire par formule, la fonction NB.SI.ENS et la fonction SOMMEPROD peuvent servir.
En VBA tu peux utiliser Application.WorksheetFunction pour y faire appel. Fais un enregistrement de macro pour obtenir la syntaxe.

A+
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
17 sept. 2019 à 09:35
j'ai essayé qqch comme ça, ça marche bien.

 Dim dl As Integer
  With Sheets("Feuil3")
   dl = .Range("C" & Rows.Count).End(xlUp).Row
    TextBox1.Value = Application.WorksheetFunction.CountIfs(Range("C2:C" & dl), "B101", Range("G2:G" & dl), "YES")
    TextBox2.Value = Application.WorksheetFunction.CountIfs(Range("C2:C" & dl), "B102", Range("G2:G" & dl), "YES")
  End With
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
17 sept. 2019 à 16:09
Bonjour a vous tous,

J'utilise une autre logique etant donne qu'il y a de trous colonne C. Compter les YES colonne G et voir ce qu'il y a dans la colonne C

Private Sub UserForm_Initialize()
    With Worksheets("Sheet1")
         Set Plage = .Range("G2:G" & .Range("G" & Rows.Count).End(xlUp).Row)
         NBYES = Application.CountIf(Plage, "YES")
         If NBYES > 0 Then
            B101 = 0
            B102 = 0
            lig = 1
            For n = 1 To NBYES
                lig = .Columns(7).Find("YES", .Cells(lig, 7), , xlWhole).Row
                If .Cells(lig, 3) = "B101" Then
                    B101 = B101 + 1
                ElseIf .Cells(lig, 3) = "B102" Then
                    B102 = B102 + 1
                Else
                End If
            Next n
            TextBox1 = B101
            TextBox2 = B102
        Else
            MsgBox "Pas de YES............."
        End If         
    End With
End Sub
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
17 sept. 2019 à 17:01
Merci,
ça marche bien.
bonne journée.
0