Compter ligne selon valeur de la colonne

New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

  1. Zoul67 Messages postés 2001 Statut Membre 149
     
    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
    1. New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
       
      Merci,
      ça marche bien.
      bonne journée.
      0