[VBA] Compter les cellules avec deux conditions

oasis_ck

XLDnaute Nouveau
Bonjour le forum,

Je cherche une formule VBA pour compter dans une plage de cellule avec deux conditions :

Un exemple pour un résultat dans R7 :

Plage de cellule D4:O71
Condition1 : le mot "Practice"
Condition2 : Interior.Colorindex = 46 (Bronze)

Un autre exemple pour un résultat dans R14 :

Plage de cellule D4:071
Condition1 : le mot "Approche"
Condition2 : Interior.Colorindex = 16 (Argent)

Ect...

Pour info j'ai déja essayé avec une création de fonction "comptecouleur" qu'on retrouve sur le web, mais çà ralentit énormément à cause du calcul et çà buguait.

Je pensais à la fonction SUMPRODUCT dans worsheet.Activate mais je n'arrive pas à la créer (dans worksheet.Change cela fait une erreur d'espace pile) ou un code dans un module avec un OFFSET vu que la cellule à gauche de la cellule de résultat réunit les deux conditions.

Bref je me creuse la tête mais je m'enlise ^^

J'ai mis les résultats de l'exemple dans le fichier joint.

Cordialement
 

oasis_ck

XLDnaute Nouveau
Re : [VBA] Compter les cellules avec deux conditions

Bonjour PierreJean, le forum,
Pour info j'ai déja essayé avec une création de fonction "comptecouleur" qu'on retrouve sur le web, mais çà ralentit énormément à cause du calcul et çà buguait.

Cette solution est efficace sans passer par les boutons mais ton codage est plus simple que ce que j'avais. En modifiant le planning via les boutons du haut ou en effaçant avec la gomme = ralentissement à chaque clique sur un bouton et #VALEUR!

N'y a-t-il pas moyen d'intégrer cette fonction de calcul directement dans le VBA ? J'ai fait ceci :
Code:
Private Sub Worksheet_Activate()

Range("R39").Value = WorksheetFunction.CountIf(Range("D4:O71"), "Training")
Range("R42").Value = WorksheetFunction.CountIf(Range("D4:O71"), "Règles")
Range("R45").Value = WorksheetFunction.CountIf(Range("D4:O71"), "Indiv")
Range("R48").Value = WorksheetFunction.CountIf(Range("D4:O71"), "Initiation")
End Sub

J'entends déjà qu'il faut quand même revenir sur la page pour le calcul :p

Bien à vous.
 

oasis_ck

XLDnaute Nouveau
Re : [Résolu] [VBA] Compter les cellules avec deux conditions

Bonsoir Pierrejean, le forum

Finalement j'ai réussi à adapter la formule de Pierrejean avec mes contraintes en désactivant le calcul automatique et en mettant 'Calculate' à la fin de mes boutons de commandes.

Résultat : aucunes erreurs et classeur suffisamment rapide

Merci
 

Discussions similaires