CountIf argument multiple

Résolu
Bonjour,
je vais essayer d'etre le plus clair possible ,
je souhaiterais compter le nombre de cellules avec plusieurs critère le premier est la vaiable K ( je cherche cette valeur dans la colonne B), le deuxième est qu'il ne doit pas compter lorsqu'il trouve "* B" dans la colonne C (en regard avec la ligne)
petit exemple
A B C
1 toto B
1 1
1 1
1 toto B

je veux qu'il me renvoie 2 puisque ma variable k ici sera à 1
dans l'attente de réponse je poste aussi la fonction tel que je l'ais écrite :
qte = Application.WorksheetFunction.CountIf(Sheets("Recap").Range("B2:B" & lignes), k And "C:C" <> "* B")

3 réponses

  1. Peut-être ça
    http://www.cijoint.fr/cjlink.php?file=cj200910/cijsOwc6Ns.xls
    0
    1. cela pourai fonctionner oui mais jme suis mal exprimer
      il n'y as rien dans la colonne C , la colonne B est "toto B"
      et il y as un petit problème d'automatisation j'ai cré une macro pour ce que je souhaite faire parce que j'ai au moins 300 lignes avec des nombres qui varie ( K ).

      en tout cas merci pour la réponse rapide ^^
      0
      1. bon avec l'aide d'un autre forum j'ai enfin solution à mon problème , je post le code si des fois cela pouvais servire à quelqun.

        Sub Macro1()
        Dim DicoBoite As Object, Boite As Range, DerLig As Integer, Lig As Integer, Elmnt As Variant
        Dim Qte As Integer, QteB As Integer, QteC As Integer
        Application.ScreenUpdating = False
        [E2:E65000].ClearContents
        Set DicoBoite = CreateObject("Scripting.Dictionary")
        DerLig = [B65000].End(xlUp).Row
        'on identifie la liste unique des boites
        For Each Boite In Range([B2], [B65000].End(xlUp))
        If Not DicoBoite.Exists(Boite.Value) Then DicoBoite.Add Boite.Value, Boite.Value
        Next Boite

        For Each Elmnt In DicoBoite.items
        Lig = [E65536].End(xlUp).Row + 1
        Qte = Evaluate("SUMPRODUCT((B2:B" & DerLig & "=" & Elmnt & ")*(RIGHT(C2:C" & DerLig & ",1)<>""C"")*(RIGHT(C2:C" & DerLig & ",1)<>""B""))")
        QteB = Evaluate("SUMPRODUCT((B2:B" & DerLig & "=" & Elmnt & ")*(RIGHT(C2:C" & DerLig & ",1)=""B""))")
        QteC = Evaluate("SUMPRODUCT((B2:B" & DerLig & "=" & Elmnt & ")*(RIGHT(C2:C" & DerLig & ",1)=""C""))")
        If Qte > 0 Then
        Range("E" & Lig).Value = Elmnt
        Range("F" & Lig).Value = Qte
        Range("G" & Lig).Value = Columns(2).Find(Elmnt, LookIn:=xlValues, lookat:=xlWhole).Offset(0, -1).Value
        Lig = Lig + 1
        End If
        If QteB > 0 Then
        Range("E" & Lig).Value = Elmnt & "B"
        Range("F" & Lig).Value = QteB
        Lig = Lig + 1
        End If
        If QteC > 0 Then
        Range("E" & Lig).Value = Elmnt & "C"
        Range("F" & Lig).Value = QteC
        Lig = Lig + 1
        End If
        ' Range("E" & Lig).Value = Elmnt: Range("E" & Lig + 1).Value = Elmnt & "B": Range("E" & Lig + 2).Value = Elmnt & "C"
        ' Range("F" & Lig).Value = Evaluate("SUMPRODUCT((B2:B" & DerLig & "=" & Elmnt & ")*(RIGHT(C2:C" & DerLig & ",1)<>""C"")*(RIGHT(C2:C" & DerLig & ",1)<>""B""))")
        ' Range("F" & Lig + 1).Value = Evaluate("SUMPRODUCT((B2:B" & DerLig & "=" & Elmnt & ")*(RIGHT(C2:C" & DerLig & ",1)=""B""))")
        ' Range("F" & Lig + 2).Value = Evaluate("SUMPRODUCT((B2:B" & DerLig & "=" & Elmnt & ")*(RIGHT(C2:C" & DerLig & ",1)=""C""))")
        Next
        End Sub
        0