IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro NB.SI ne donne pas le bon résultat


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut Macro NB.SI ne donne pas le bon résultat
    Bonjour,


    Quelqu'un peut-il me dire pourquoi la macro suivante donne comme résultat 0 alors que j'ai plusieurs cellules en rouge: En effet, j'aimerais compter le nombre de cellules de fond rouge de la colonnes Q et pour cela j'ai attribuer la couleur rouge à la cellule Q143 (Est-ce nécessaire et puis-je faire autrement?):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub CompteCouleur()
        For Each CellRef In Range("Q143:Q143")
            CellRef.Offset(0, 1).Value = 0
            For Each CellAnalyse In Range("P8:P128")
                If CellRef.Interior.ColorIndex = CellAnalyse.Interior.ColorIndex Then
                    CellRef.Offset(0, 1).Value = CellRef.Offset(0, 1).Value + 1
                End If
            Next
        Next
    End Sub
    Merci d'avance pour vos suggestions

    Cordialement

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour,

    question: tes couleurs sont issu d'une mise en forme conditionnelle ???

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Tout à fait laetitia! C'est impossible alors!!?

    Cordialement

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, le plus simple peut être compter les valeurs des cellules rouge
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub compte()
     MsgBox Application.CountIf([q1:q128], 10) 'compte les valeurs =10
    'ou
    MsgBox Application.CountIf([q1:q128], "") 'compte les valeurs vide
    End Sub
    a adapter

    ou une macro pour compter les couleurs mais bon !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub coul()
    Dim c As Range, FC As FormatCondition, F1, x As Long
    Application.ScreenUpdating = False
    x = 0
    For Each c In [q8:q128] 'plage a definir
    c.Activate
    For Each FC In ActiveCell.FormatConditions
      If FC.Type = xlCellValue Then
        F1 = Evaluate(FC.Formula1)
        Select Case FC.Operator
          Case xlBetween: If ActiveCell >= F1 _
            And ActiveCell <= Evaluate(FC.Formula2) Then Exit For
          Case xlEqual: If ActiveCell = F1 Then Exit For
          Case xlGreater: If ActiveCell > F1 Then Exit For
          Case xlGreaterEqual: If ActiveCell >= F1 Then Exit For
          Case xlLess: If ActiveCell < F1 Then Exit For
          Case xlLessEqual: If ActiveCell <= F1 Then Exit For
          Case xlNotBetween: If ActiveCell < F1 _
            Or ActiveCell > Evaluate(FC.Formula2) Then Exit For
          Case xlNotEqual: If ActiveCell <> F1 Then Exit For
        End Select
      Else
        If Evaluate(FC.Formula1) Then Exit For
      End If
    Next FC
    If Not FC Is Nothing Then
    If FC.Interior.ColorIndex = 3 Then x = x + 1 'index couleur= 3 rouge
    End If
    Next c
    MsgBox x 'variable a utiliser
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Ton 2ème code est intéressant, cependant il me donne 0 comme résultat: en fait, j'aimerais que mon code compte le nomre de cellules rouge sur la colonne p8:p128 et m'affiche le résultat dans la cellule R143 (ou une de mon choix). Comment faire? et pourquoi quand j'adapte ton code il donne 0 comme résultat?

    Merci infiniment laetitia pour le temps que tu consacre à ma question


    Cordialement

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, as tu essaye d'adapter en fonction de ta plage???

    sinon change ces 2 lignes dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each c In [q8:q128]
    'par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each c In [p8:p128]
    'puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox x 'variable a utiliser
    'par
    en complement c'est quoi le code pour que tes cellules soit rouges & dans la cellule c'est quoi qui est ecris on pourrait faire plus simple!!!!!!!

Discussions similaires

  1. requete SQL qui ne donne pas le bon résultat?
    Par siho90 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 24/01/2011, 18h01
  2. Fonction Estnull et Rechdom ne donne pas le bon résultat
    Par Amstra dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/01/2010, 14h19
  3. Réponses: 8
    Dernier message: 23/06/2009, 20h31
  4. Requêt avec sum ne donne pas le bon résultat§
    Par _cece dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/11/2008, 18h53
  5. Mon site ne donne pas un bon résultat avec firefox
    Par beegees dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 14/08/2007, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo