Comptabiliser les cellules colorées uniquement et pas leurs contenus

Signaler
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009
-
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009
-
Bonjour à tous,

Voilà je travail avec un tableau Excel (2002 SP3), je souhaite comptabiliser les cellules colorées uniquement et pas leurs contenus. Est-ce faisable?
Attention j'utilise 3 sortes de couleurs (bleu, vert et rouge). Il faudra donc que le programme différenties les 3 couleurs et comptabilise uniquement les cellules de la même couleur.

Avez-vous une solution à me proposer?

Je reste à votre disposition si vous avez des questions
Merci d'avance

7 réponses

Messages postés
20
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
13 février 2009

Voila, au vu des renseignements que tu m'as communiqué, voici un code qui fonctionne. Je suis débutant aussi, donc ce n'est peut être pas le meilleurs code possible, mais ça marche (j'ai testé).
Je t'ai placé un max de "rem" pour t'expliquer chaque étape du code. il ne te reste qu'à faire un copier / coller à partir de "Option Explicit" et ça roule. Si tu dois modifier ton tableau, il te faudra modifier le code comme suit :
 - si tu changes l'origine du tableau, remplace D2 par la nouvelle valeur dans la ligne : Range("D2").Select- si ton tableau à plus de colonnes (31 à l'heure actuelle), remplace le 30 de la ligne : For i 0 To 30 par le nouveau nombre de colonnes -1 (For i 0 to 40 pour 41 colonnes par exemple).
- si ton tableau à plus de lignes, fait de même en remplaçant le 3 de : For j = 0 To 3 par le nouveau nombre de lignes - 1.
le reste se fera tout seul : les résultats iront se coller 2 colonnes plus loins quel que soit le nombre de colonnes (sauf si tu arrives au bout d'excel ) et pareil pour les résultatas en ligne.

Option Explicit
Dim bleu, rouge, vert, totbleu, totvert, totrouge, i, j As Byte '*** définition des variables comme valeur numériques de 0 à 255

Sub nombre_couleurs()


'*** selection de la cellule de départ


Range("D2").Select


'*** valeurs initiales des variables couleurs


bleu = 0
vert = 0
rouge = 0
totbleu = 0
totvert = 0
totrouge = 0


'*** boucle de comptage des couleurs


For j = 0 To 3


    For i = 0 To 30
        If ActiveCell.Offset(j, i).Interior.ColorIndex = 8 Then
            bleu = bleu + 1
        ElseIf ActiveCell.Offset(j, i).Interior.ColorIndex = 4 Then
            vert = vert + 1
        ElseIf ActiveCell.Offset(j, i).Interior.ColorIndex = 3 Then
            rouge = rouge + 1
        End If
    Next i
   
    '*** cumul des valeurs des couleurs (pour un total général)
   
    totbleu = totbleu + bleu
    totvert = totvert + vert
    totrouge = totrouge + rouge
   
    '*** inscription des résultats par ligne dans les cellules AJ pour bleu, AK pour vert et AL pour rouge
       
    ActiveCell.Offset(j, i + 1) = bleu
    ActiveCell.Offset(j, i + 2) = vert
    ActiveCell.Offset(j, i + 3) = rouge
       
    '*** réinitialisation des valeurs des couleurs
       
    bleu = 0
    vert = 0
    rouge = 0
   
Next j
   
    '***inscription des totaux par couleur dans les cellules AJ6, AK6 et AL6
   
    ActiveCell.Offset(j, i + 1) = totbleu
    ActiveCell.Offset(j, i + 2) = totvert
    ActiveCell.Offset(j, i + 3) = totrouge


End Sub
Messages postés
20
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
13 février 2009

Ha oui, petite rectification , si tu dépasses 255 lignes, ça ne marchera pas, il faudra alors changer la variable j de "byte" en "long".
Messages postés
20
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
13 février 2009

hmmm je post trop vite moi, car ce que j'ai écris plus haut s'applique aussi aux autres variables. En effet dès qu'une variable dépasse 255 il faut la changer en "long"

Désolé pour le flood
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009

Ok ça fonctionne! par contre je souhaite maintenant qu'il m'affiche le résultat global en prenant tout le tableau (de D:2 et D:5 à GG:2 GG:5) dans les cases GP, GQ et GR. Quelle est la manip pour modifier cela dans le programme?

Merci mille fois
Messages postés
20
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
13 février 2009

C'est expliqué dans le dernier post.
Compte le nombre de colonnes de ton tableau et reduit ce nombre de 1 et remplace le nombre 30 de la ligne :
For i = 1 to 30 par le nouveau nombre.
Pour un tableau de 50 colonnes, tu devras donc écrire : For i = 1 to 49
Messages postés
20
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
13 février 2009

C'est expliqué dans mon premier post.
Compte le nombre de colonnes de ton tableau et reduit ce nombre de 1 et remplace le nombre 30 de la ligne :
For i = 1 to 30 par le nouveau nombre.
Pour un tableau de 50 colonnes, tu devras donc écrire : For i = 1 to 49
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009

Re-bonjour,
Je suis de retour avec un tableau de même type cad que je souhaite qu'un résultat s'affiche dans 2 cases (en V:4 et W:5), après avoir définie uniquement les 2 couleurs d'une colonne T de la ligne 4 à 50.

Quelqu'un a t'il une solution. Je reste à votre dispostion si vous avez des questions.
Merci