Macro somme cellules de couleur
Fermé
Cyrielle70
Messages postés
9
Date d'inscription
jeudi 7 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
-
7 janv. 2016 à 18:35
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 - 11 janv. 2016 à 13:37
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 - 11 janv. 2016 à 13:37
A voir également:
- Macro somme cellules de couleur
- Somme si couleur - Guide
- Excel cellule couleur si condition texte - Guide
- Comment faire la somme de plusieurs cellules non consécutives sur excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
2 réponses
f894009
Messages postés
17223
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
10 janvier 2025
1 712
7 janv. 2016 à 18:51
7 janv. 2016 à 18:51
Bonjour
Ces couleurs proviennent d'une mise en forme conditionnelle ou pas ???
Ces couleurs proviennent d'une mise en forme conditionnelle ou pas ???
maxmen67
Messages postés
56
Date d'inscription
mardi 5 janvier 2016
Statut
Membre
Dernière intervention
18 juillet 2019
1
8 janv. 2016 à 11:04
8 janv. 2016 à 11:04
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
Cyrielle70
Messages postés
9
Date d'inscription
jeudi 7 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
8 janv. 2016 à 15:46
8 janv. 2016 à 15:46
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
maxmen67
Messages postés
56
Date d'inscription
mardi 5 janvier 2016
Statut
Membre
Dernière intervention
18 juillet 2019
1
11 janv. 2016 à 10:08
11 janv. 2016 à 10:08
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
Cyrielle70
Messages postés
9
Date d'inscription
jeudi 7 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
11 janv. 2016 à 13:31
11 janv. 2016 à 13:31
super merci beaucoup c'est top :)
maxmen67
Messages postés
56
Date d'inscription
mardi 5 janvier 2016
Statut
Membre
Dernière intervention
18 juillet 2019
1
11 janv. 2016 à 13:37
11 janv. 2016 à 13:37
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
7 janv. 2016 à 18:53
C'est moi qui fait mettre les couleurs dans les cellules manuellement.
Modifié par f894009 le 8/01/2016 à 07:29
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
8 janv. 2016 à 09:20
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 ;)
8 janv. 2016 à 11:21
un fichier modele microsoft sans VBA qui est assez facile a modifer
https://www.cjoint.com/c/FAikuX0hcNf
A+
8 janv. 2016 à 15:47
merci:)