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 :

Compter le nombre de cellules par couleur de fond [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 8
    Points
    8
    Par défaut Compter le nombre de cellules par couleur de fond
    Bonjour,

    Afin d'effectuer un planning, je voudrais compter en vba les cellules par couleurs de fond.

    Visuellement, c'est plus pratique que des données.

    Merci pour vos réponses,

    cdlt, franky7.

  2. #2
    Membre actif Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Points : 220
    Points
    220
    Par défaut
    Bonjour,

    c'est tout à fait possible, cependant combien as tu de couleurs de fond différentes?

    Tiens sinon un test:

    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
    Public Sub ComptColor()
     
    Dim color As Long
    Dim number As Long
     
    color = 255 'long qui équivaut au rouge
     
    For Each cel In Range("A1:A100")
        If cel.Interior.color = 255 Then    'si la cellule est rouge alors on incrément
            number = number + 1
        End If
    Next cel
     
    MsgBox number   'affiche le nombre de cellule rouge
     
    End Sub
    et la meme chose en PJ
    Fichiers attachés Fichiers attachés

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut interieur
    Salut,

    Tu peux faire avec un If ou select case, en créant une variable qui contiendra tes couleurs de fond :

    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
    Sub test()
    Dim strgCoulFond As String
    Dim intLine As Integer
    Dim intColumn As Integer
     
    For intLine = 1 To 20
    For intColumn = 1 To 20
    Cells(intLine, intColumn).Select
    With Selection.Interior
    If .Color = 16777215 Then
        MsgBox "couleur blanche"
    End If
    MsgBox .Color
    End With
    Next intColumn
    Next intLine
    End Sub

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens voici une fonction personnalisé à mettre dans un module , en 1° paramètre la plage à tester et en 2° une cellule de la couleur de fond à tester ..:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function CompteCouleur(plage As Range, CouleurReference As Range) As Integer
    Application.Volatile
    Dim r As Range
    Dim i As Integer
    For Each r In plage
      If r.Interior.Color = CouleurReference.Interior.Color Then i = i + 1
    Next
    CompteCouleur = i
    End Function
    le problème de cette fonction est que le changement d'une couleur ne lance pas un re-calcul de la feuille et donc le résultat n'est pas mis à jour il faut attendre le prochain re-calcul (action sur F9 , saisie/modification d'une valeur..)

    exemple d'utilisation à placer en F34, pour compter les cellules de la plage F19:F33 qui sont de la même couleur de fond que la cellule F34:
    =CompteCouleur(F19:F33;F34)

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut couleur avec case
    Et voici ce que j'ai trouvé avec un select case

    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
    Sub test()
    Dim strgCoulFond As String
    Dim intLine As Integer
    Dim intColumn As Integer
     
    For intLine = 1 To 20
    For intColumn = 1 To 20
    Cells(intLine, intColumn).Select
    With Selection.Interior
    Coul = .Color
    Select Case Coul
    Case 16777215
        MsgBox "couleur blanche"
    Case 255
        MsgBox "couleur rouge"
    Case Else
        MsgBox "couleur differente du blanc et du rouge (serait-ce un rosé de provence ?)"
    End Select
    MsgBox .Color
    End With
    Next intColumn
    Next intLine
    End Sub

  6. #6
    Membre actif Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Points : 220
    Points
    220
    Par défaut
    Pas mal bbil de mettre une couleur de référence en tant que cellule moi je travaillais toujours avec les codes long sa fait des bonnes conversions

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut Volatile
    Salut BBIL !

    C'est quoi la signification de la ligne "application.volatile" ?

    C'est une appli avec des plumes ou bien ?


  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par francky74 Voir le message
    ...
    C'est une appli avec des plumes ou bien ?

    ...
    oui ... , sinon la touche ... aurais pu t'aider : les fonctions "volatiles" sont recalculées pour tous les changements dans la feuille et pas seulement pour le changement des données en paramètres.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter le nombre de cellules par couleur de fond
    Par natachad dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/10/2011, 11h49
  2. [XL-2007] Compter le nombre de cellules en couleur
    Par Nico.C dans le forum Excel
    Réponses: 3
    Dernier message: 28/05/2009, 09h26
  3. Compter le nombre de cellulle en fonction de la couleur RGB
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 13/02/2009, 11h23
  4. Réponses: 4
    Dernier message: 13/08/2008, 11h03
  5. compter le nombre de cellules commencant par
    Par euskadi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2006, 14h36

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