Macro somme cellules de couleur
Cyrielle70
Messages postés
10
Statut
Membre
-
maxmen67 Messages postés 58 Statut Membre -
maxmen67 Messages postés 58 Statut Membre -
Bonjour,
je dois faire un tableau excel je pense que je dois utiliser la fonction macro (je ne m'y connais pas trop),
dans les cellules entre D3 et AH114 il y aura que des cellules en couleurs (rouge, bleu, jaune, violet, rose). chaque fin de ligne et colonne j'aimerai avoir le nombre de cellules en rouge, bleu, jaune, violet, rose.
Est ce que quelqu'un aurait une solution pour moi svp.
merci
je dois faire un tableau excel je pense que je dois utiliser la fonction macro (je ne m'y connais pas trop),
dans les cellules entre D3 et AH114 il y aura que des cellules en couleurs (rouge, bleu, jaune, violet, rose). chaque fin de ligne et colonne j'aimerai avoir le nombre de cellules en rouge, bleu, jaune, violet, rose.
Est ce que quelqu'un aurait une solution pour moi svp.
merci
A voir également:
- Macro somme cellules de couleur
- Somme si couleur - Guide
- Somme de plusieurs cellules excel - Guide
- Excel cellule couleur si condition texte - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Boite a couleur - Télécharger - Divers Photo & Graphisme
2 réponses
Bonjour;
Faire un clic droit sur l'onglet de la feuille qui contient le tableau puis cliquer sur "visualiser le code" puis coller le code suivant :
cordialement
Faire un clic droit sur l'onglet de la feuille qui contient le tableau puis cliquer sur "visualiser le code" puis coller le code suivant :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Comptage des couleurs en ligne
Dim CompterCellules As Integer, iCell, PlageTest
Set PlageTest = Range("D3:AH3")
'compteur pour cellules rouges
Application.ScreenUpdating = False
For Each iCell In PlageTest
If iCell.Interior.ColorIndex = 3 Then
CompterCellules = CompterCellules + 1
End If
Next iCell
Range("AJ3") = CompterCellules
'compteur pour cellules jaunes
For Each iCell In PlageTest
If iCell.Interior.ColorIndex = 6 Then
CompterCellules1 = CompterCellules1 + 1
End If
Next iCell
Range("AI3") = CompterCellules1
'compteur pour cellules bleues
For Each iCell In PlageTest
If iCell.Interior.ColorIndex = 33 Then
CompterCellules2 = CompterCellules2 + 1
End If
Next iCell
Range("AK3") = CompterCellules2
'compteur pour cellules violettes
For Each iCell In PlageTest
If iCell.Interior.ColorIndex = 13 Then
CompterCellules3 = CompterCellules3 + 1
End If
Next iCell
Range("AL3") = CompterCellules3
'compteur pour cellules roses
For Each iCell In PlageTest
If iCell.Interior.ColorIndex = 7 Then
CompterCellules4 = CompterCellules4 + 1
End If
Next iCell
Range("AM3") = CompterCellules4
'comptage cellules en colonnes
Dim CompterCol As Integer, iCelll, Testplage
Set Testplage = Range("D3:D63")
'compteur pour cellules rouges
Application.ScreenUpdating = False
For Each iCelll In Testplage
If iCelll.Interior.ColorIndex = 3 Then
CompterCol = CompterCol + 1
End If
Next iCelll
Range("D65") = CompterCol
'compteur pour cellules jaunes
Application.ScreenUpdating = False
For Each iCelll In Testplage
If iCelll.Interior.ColorIndex = 6 Then
CompterCol1 = CompterCol1 + 1
End If
Next iCelll
Range("D64") = CompterCol1
'compteur pour cellules bleues
Application.ScreenUpdating = False
For Each iCelll In Testplage
If iCelll.Interior.ColorIndex = 33 Then
CompterCol2 = CompterCol2 + 1
End If
Next iCelll
Range("D66") = CompterCol2
'compteur pour cellules violettes
Application.ScreenUpdating = False
For Each iCelll In Testplage
If iCelll.Interior.ColorIndex = 13 Then
CompterCol3 = CompterCol3 + 1
End If
Next iCelll
Range("D67") = CompterCol3
'compteur pour cellules roses
Application.ScreenUpdating = False
For Each iCelll In Testplage
If iCelll.Interior.ColorIndex = 7 Then
CompterCol4 = CompterCol4 + 1
End If
Next iCelll
Range("D68") = CompterCol4
End Sub
cordialement
Bonjours
Merci pour ton aide, dans mon tableau j'ai réussi à utiliser ta facon, mais par contre j'y arrive uniquement pour la premiere ligne du tableau numéro 3 mais je n'y arrive pas pour la ligne 4. J'ai essayer de le mettre directement à la liste mais pas possible ni en copiant deux fois les codes....
Cordialement
Merci pour ton aide, dans mon tableau j'ai réussi à utiliser ta facon, mais par contre j'y arrive uniquement pour la premiere ligne du tableau numéro 3 mais je n'y arrive pas pour la ligne 4. J'ai essayer de le mettre directement à la liste mais pas possible ni en copiant deux fois les codes....
Cordialement
Salut;
Désolé pour le temps de réponse...
Le week-end est passé par là !
Pour faire les autres lignes et colonnes, il faut recopier le code et changer certaines données telles que:
l'adresse des cellules à compter
et incrémenter les variables ("comptercellules","icell","plagetest") pour pas qu'il y'ai d'erreur dans le comptage.
voir code ci-dessous:
Voici un lien vers un fichier exemple que j'ai fais:
https://www.cjoint.com/c/FAljgfs3knq
Désolé pour le temps de réponse...
Le week-end est passé par là !
Pour faire les autres lignes et colonnes, il faut recopier le code et changer certaines données telles que:
l'adresse des cellules à compter
et incrémenter les variables ("comptercellules","icell","plagetest") pour pas qu'il y'ai d'erreur dans le comptage.
voir code ci-dessous:
'Comptage des couleurs en ligne 2 ------------------_-_-_
Dim CompterCellules11 As Integer, iCell11, PlageTest1
Set PlageTest1 = Range("D4:AH4")
'compteur pour cellules rouges ---------------------------------------------------
Application.ScreenUpdating = False
For Each iCell11 In PlageTest1
If iCell11.Interior.ColorIndex = 3 Then
CompterCellules11 = CompterCellules11 + 1
End If
Next iCell11
Range("AJ4") = CompterCellules11
Voici un lien vers un fichier exemple que j'ai fais:
https://www.cjoint.com/c/FAljgfs3knq
J'ai refait un fichier dans lequel j'explique en détail les étapes dans ALT+F11
https://www.cjoint.com/c/FAlmKp5EvKq
https://www.cjoint.com/c/FAlmKp5EvKq
C'est moi qui fait mettre les couleurs dans les cellules manuellement.
Vu le nombre de cellules (pas loin de 3800), il faut utiliser les mise en forme conditionnelle (MFC) pour les couleurs et ensuite suivant la complexite des tests faire:
soit des formules
soit du code VBA
pour compter les cellules par couleur par ligne
A vous de nous en dire un peu plus
Merci, mais je crois que je ne peux pas utiliser la mise en forme conditionnelle car mon tableau concerne un planning pour des enfants, les cases sont vides, il y a juste de la couleur (soit ils sont dans leur famille couleur verte, soit en colo jaune, et d'autres cas en tout j'ai 6 couleurs) ; je peux donc mettre la couleur uniquement manuellement.
Pour chaque semaine, chaque mois,chaque enfants ça change.
Vu qu'il y a moins de cellules (plage D3:AH60) est ce que je ne peux pas uniquement utiliser les codes VBA ?
merci pour vos réponses ;)
un fichier modele microsoft sans VBA qui est assez facile a modifer
https://www.cjoint.com/c/FAikuX0hcNf
A+
merci:)