1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

[réglé] Application.WorksheetFunction.CountIf

Discussion dans 'Forum Excel' démarrée par Jefekoi, 7 Janvier 2019.

  1. Jefekoi

    Jefekoi XLDnaute Junior

    Inscrit depuis le :
    19 Février 2009
    Messages :
    74
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    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:

  2. Chargement...

    Discussions similaires - [réglé] Application WorksheetFunction Forum Date
    [Réglé]Recherche dans plage Forum Excel Dimanche à 09:32
    [Réglé] Calendrier jours fériés Forum Excel 28 Décembre 2018
    [réglé]Macro doublon Forum Excel 8 Décembre 2018
    [réglé] [Problème] Renommer un fichier espace blanc Forum Excel 7 Décembre 2018
    XL 2016 [réglé] Récuperer les doublons Forum Excel 20 Octobre 2018

  3. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2567
    "J'aime" reçus :
    129
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Hello,
    TrucMuche=application.COUNTIFS([Q2:Q10000],"Atelier A",[M2:M10000],"Mauvais")
    Bruno
     
  4. Jacky67

    Jacky67 XLDnaute Accro

    Inscrit depuis le :
    12 Juin 2016
    Messages :
    1183
    "J'aime" reçus :
    170
    Utilise:
    Excel 2007 (PC)
    Bonjour,
    Par exemple, dans une cellule
    =SOMMEPROD((Q5:Q495="Atelier A")*(M5:M495="Mauvais"))
    En VBA
    Code (Visual Basic):
    Sub test()
          TrucMuch = [SUMPRODUCT((Q5:Q495="Atelier A")*(M5:M495="Mauvais"))]
          MsgBox TrucMuch
    End Sub
     
  5. cp4

    cp4 XLDnaute Impliqué

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    517
    "J'aime" reçus :
    32
    Utilise:
    Excel 2010 (PC)
    Bonsoir, Jacky67, Youky(bj), jefekoi, :):):)

    je l'ai fait je le joins.
     

    Pièces jointes:

  6. Jefekoi

    Jefekoi XLDnaute Junior

    Inscrit depuis le :
    19 Février 2009
    Messages :
    74
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Merci messieurs je vais étudier ça :)

    Bonne soirée
     
  7. Jefekoi

    Jefekoi XLDnaute Junior

    Inscrit depuis le :
    19 Février 2009
    Messages :
    74
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    les 3 solutions fonctionnent merci

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

    Comment puis-je procéder pour la colonne M c'est la plage "Status"

    Merci

    Bonne journée
     
  8. cp4

    cp4 XLDnaute Impliqué

    Inscrit depuis le :
    7 Novembre 2015
    Messages :
    517
    "J'aime" reçus :
    32
    Utilise:
    Excel 2010 (PC)
    Bonjour, remplacer q5 par q2
    Code (Visual Basic):
    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
     
  9. Jacky67

    Jacky67 XLDnaute Accro

    Inscrit depuis le :
    12 Juin 2016
    Messages :
    1183
    "J'aime" reçus :
    170
    Utilise:
    Excel 2007 (PC)
    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: 8 Janvier 2019
  10. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2567
    "J'aime" reçus :
    129
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    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:

  11. Jefekoi

    Jefekoi XLDnaute Junior

    Inscrit depuis le :
    19 Février 2009
    Messages :
    74
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    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 .
     
  12. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonsoir.
    S'il y a des parties variables dans l'argument de la méthode Evaluate on ne peut pas utiliser sa syntaxe par crochets droits.
    Il faut Evaluate("SUMPRODUCT((Status<>"""")*(Station=""" & Poste(0) & """))")
     
  13. Jefekoi

    Jefekoi XLDnaute Junior

    Inscrit depuis le :
    19 Février 2009
    Messages :
    74
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Super merci beaucoup :)
     

Partager cette page