[réglé] Application.WorksheetFunction.CountIf

  • Initiateur de la discussion Initiateur de la discussion Jefekoi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jefekoi

XLDnaute Junior
Bonjour,

J'ai dans un onglet 2 colonnes où je voudrais récupérer des infos :

Dans la colonne Q j'ai des noms de poste
Dans le colonne M j'ai des résultats

Je voudrais chercher en Q un poste exemple : "Atelier A"
Et qu'il me dise combien il y a de résultat "Mauvais"

Sans passer par le filtre classique mais en utilisant uniquement une macro

J'ai réussi à sortir ceci :

TrucMuche= Application.WorksheetFunction.CountIf(Columns(Q), "Atelier A")

Mais comment faire pour avoir une condition : Si Colonne Q= "Atelier A" combien de "Mauvais il y a t-il ?


Merci pour votre aide

Eric
 

Pièces jointes

Bonjour, remplacer q5 par q2
VB:
Option Explicit

Sub test()
   Dim dl As Integer, c As Range, i As Integer
   With Sheets("Report")
      dl = .Range("Q" & Rows.Count).End(xlUp).Row
      For Each c In .Range("Q2:Q" & dl)
         If c.Value = .Range("S1") Then
            If c.Offset(, -4).Value = "Mauvais" Then
               i = i + 1
            End If
         End If
      Next
      MsgBox "Pour l'" & .Range("S1") & " il y a " & i & " mauvais"
   End With
  
End Sub
 
les 3 solutions fonctionnent merci

Question je voudrais remplacer Q2:Q10000 par son nom "Station" c'est une plage .
Merci

Bonne journée

Re..
Dans ce cas, pour que les 2 plages aient la même longueur (obligatoire), il vaut mieux nommer les deux plages
Exemple avec les deux plages nommées dynamiquement en PJ
 

Pièces jointes

Dernière édition:
Bonjour tous,
Perso je ne suis pas pour nommer chaque plages.
Je préfère insérer direct un tableau et le tour est joué rien d'autre à gérer.
[Tableau1[nom de entête de colonne]].select 'suffit pour sélectionner la bonne plage
Ceci même si on décale le tableau. (ajout de colonne ou de ligne avant l'entête)
Fichier avec exemple de Tableau1
Bruno
 

Pièces jointes

Merci Messieurs vous êtes super 🙂

J'ai une question :
Si je choisi cette formule :
OP = [SUMPRODUCT((Status<>"")*(Station="Atelier A"))]
Le résultat est correct

Par contre si je fais comme cela :
Dim Poste As Variant
Poste = Array("Atelier A")
OP = [SUMPRODUCT((Status<>"")*(Station=Poste(0)))]
Le résultat ne fonctionne pas j'ai : #NOM?

Pourtant il me semble que c'est bon comme syntaxe .
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
512
Réponses
4
Affichages
729
D
Réponses
4
Affichages
1 K
Retour