Existe-t-il un moyen de combiner plusieurs critères avec un .countif() ?

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,


je cherche à connaître le nombre de lignes correspondant à deux critères : année=2009 et pays=Italie


Avec un countif(), j'arrive à ne cerner qu'un seul critère; J'arrive au résultat en passant par un compteur que j'incrémente à chaque fois que la double condition est vérifiée
Mais ça paraît un peu antique : quelqu'un sait-il si on peut avoir un countif du type countif(condition1 =x; condition2=y) ?


Merci d'avance pour vos lumière

ci-dessous le code que j'aimerais simplifier

Code:
Sub Balayage()

Dim NbreMyYear As Long
Dim lastline As Long
Dim MyYear As Long
Dim Pays As String
Dim i As Long
Dim compteur As Long
Dim année_en_dur As Long

lastline = Sheets("Chiffres").Range("A" & Rows.Count).End(xlUp).Row

année_en_dur = 2009

For i = 2 To lastline

        MyYear = Sheets("Chiffres").Cells(i, 1).Value
        Pays = Sheets("Chiffres").Cells(i, 3).Value
          
        If (MyYear = année_en_dur) And (Pays = "ITALIE") Then compteur = compteur + 1

Next i

MsgBox "Dans la feuille, il y a " & compteur & " lignes avec " & année_en_dur & " et le pays indiqué"

End Sub
 

Pièces jointes

  • Forum_question_25042014.xlsm
    22.2 KB · Affichages: 37

Pierrot93

XLDnaute Barbatruc
Re : Existe-t-il un moyen de combiner plusieurs critères avec un .countif() ?

Bonjour,

pas ouvert ton fichier, mais sous 2010, regarde peut être du coté de la fonction "NB.SI.ENS", en vba :
Code:
Application.CountIfs
bon après midi
@+
 

Sebast

XLDnaute Impliqué
Re : Existe-t-il un moyen de combiner plusieurs critères avec un .countif() ?

Bonjour Pierrot, bonjour Rachid,

merci pour votre aide.

J'ai creusé la piste de Pierrot : j'avoue que je ne connaissais pas l'option countif avec un S ! C'est effectivement beaucoup mieux que mon compteur artisanal !


Rachid : je dois le faire en VBA car j'intègre le résultat dans une routine



Pour ceux que ça peut intéresser, ça donnerait ça :

Code:
Sub Calcul()

Dim Nombre As Long
Dim lastline As Long
Dim MyYear As Range
Dim Country As Range

lastline = Sheets("Chiffres").Range("A" & Rows.Count).End(xlUp).Row
Set MyYear = Sheets("Chiffres").Range("A2:A" & lastline)
Set Country = Sheets("Chiffres").Range("C2:C" & lastline)

Nombre = WorksheetFunction.CountIfs(MyYear, "=2009", Country, "=ITALIE")

MsgBox "Il y a " & Nombre & " lignes "

End Sub




Encore merci à vous
 

Discussions similaires

Statistiques des forums

Discussions
314 490
Messages
2 110 139
Membres
110 684
dernier inscrit
kihel