Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ 300)
sont coloriées (couleur de remplissage) avec une dizaine de couleurs
différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ 300)
sont coloriées (couleur de remplissage) avec une dizaine de couleurs
différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ 300)
sont coloriées (couleur de remplissage) avec une dizaine de couleurs
différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ
300) sont coloriées (couleur de remplissage) avec une dizaine de
couleurs différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ
300) sont coloriées (couleur de remplissage) avec une dizaine de
couleurs différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ
300) sont coloriées (couleur de remplissage) avec une dizaine de
couleurs différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
djeel a écrit, le 10/12/2011 10:11 :Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ
300) sont coloriées (couleur de remplissage) avec une dizaine de
couleurs différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Bonjour,
Il me semble que VBA a toute sa place pour faire ça.
Il convient de commencer par renseigner les valeurs représentant les
couleurs, en les lisant avec un code VBA, au besoin on peut y revenir.
Il faut vérifier dans l'aide de Interior la propriété BackColor, pour
laquelle j'ai un petit doute (dommage, je m'en suis servi hier). Si il
s'agit de couleurs fixes, qu'on peut les mettre en dur dans le code, ç a
peut donner quelque chose comme ça :
Public Sub CompteCouleurs
Dim C As Range 'Cell
Couleur1 = 255
Couleur2 = 1024
.
.
.
Couleur10 = 20505415
NbCouleur1 = 0
NbCouleur2 = 0
NbCouleur3 = 0
NbCouleur4 = 0
NbCouleur5 = 0
NbCouleur6 = 0
NbCouleur7 = 0
NbCouleur8 = 0
NbCouleur9 = 0
NbCouleur10 = 0
For Each C in ActiveSheet.UsedRange
Select Case C.Interior.BackColor
Case Couleur1
NbCouleur1 = NbCouleur1 + 1
Case Couleur2
NbCouleur2 = NbCouleur2 + 1
Case Couleur3
NbCouleur3 = NbCouleur3 + 1
Case Couleur4
NbCouleur4 = NbCouleur4 + 1
Case Couleur5
NbCouleur5 = NbCouleur5 + 1
Case Couleur6
NbCouleur7 = NbCouleur6 + 1
Case Couleur7
NbCouleur7 = NbCouleur7 + 1
Case Couleur8
NbCouleur8 = NbCouleur8 + 1
Case Couleur1
NbCouleur9 = NbCouleur9 + 1
Case Couleur1
NbCouleur10 = NbCouleur10 + 1
End Select
Next
MsgBox "Voici les résultats : " + vbCrLf + _
"Couleur 1 : " + VBA.Str$(NbCouleur1) + vbCrLf + _
"Couleur 2 : " + VBA.Str$(NbCouleur2) + vbCrLf + _
"Couleur 3 : " + VBA.Str$(NbCouleur3) + vbCrLf + _
"Couleur 4 : " + VBA.Str$(NbCouleur4) + vbCrLf + _
"Couleur 5 : " + VBA.Str$(NbCouleur5) + vbCrLf + _
"Couleur 6 : " + VBA.Str$(NbCouleur6) + vbCrLf + _
"Couleur 7 : " + VBA.Str$(NbCouleur7) + vbCrLf + _
"Couleur 8 : " + VBA.Str$(NbCouleur8) + vbCrLf + _
"Couleur 9 : " + VBA.Str$(NbCouleur9) + vbCrLf + _
"Couleur 10 : " + VBA.Str$(NbCouleur10)
End Sub
ça met un bout de temps qu'il faut laisser à la machine pour faire les
décomptes. Une amélioration peut être de renseigner une barre de
progression pour qu'on se rende compte du temps qu'il reste à attendr e.
A priori il est préférable d'avoir l'option Explicit initialisée, auquel
cas on sera obligé de déclarer comme Integer les variables Couleur1 à
Couleur10, et NbCouleur1 à NbCouleur10.
Dim NbCouleur1 As Integer
(ou Int, en pratiquant plusieurs langages je finis par avoir un doute).
djeel a écrit, le 10/12/2011 10:11 :
Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ
300) sont coloriées (couleur de remplissage) avec une dizaine de
couleurs différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Bonjour,
Il me semble que VBA a toute sa place pour faire ça.
Il convient de commencer par renseigner les valeurs représentant les
couleurs, en les lisant avec un code VBA, au besoin on peut y revenir.
Il faut vérifier dans l'aide de Interior la propriété BackColor, pour
laquelle j'ai un petit doute (dommage, je m'en suis servi hier). Si il
s'agit de couleurs fixes, qu'on peut les mettre en dur dans le code, ç a
peut donner quelque chose comme ça :
Public Sub CompteCouleurs
Dim C As Range 'Cell
Couleur1 = 255
Couleur2 = 1024
.
.
.
Couleur10 = 20505415
NbCouleur1 = 0
NbCouleur2 = 0
NbCouleur3 = 0
NbCouleur4 = 0
NbCouleur5 = 0
NbCouleur6 = 0
NbCouleur7 = 0
NbCouleur8 = 0
NbCouleur9 = 0
NbCouleur10 = 0
For Each C in ActiveSheet.UsedRange
Select Case C.Interior.BackColor
Case Couleur1
NbCouleur1 = NbCouleur1 + 1
Case Couleur2
NbCouleur2 = NbCouleur2 + 1
Case Couleur3
NbCouleur3 = NbCouleur3 + 1
Case Couleur4
NbCouleur4 = NbCouleur4 + 1
Case Couleur5
NbCouleur5 = NbCouleur5 + 1
Case Couleur6
NbCouleur7 = NbCouleur6 + 1
Case Couleur7
NbCouleur7 = NbCouleur7 + 1
Case Couleur8
NbCouleur8 = NbCouleur8 + 1
Case Couleur1
NbCouleur9 = NbCouleur9 + 1
Case Couleur1
NbCouleur10 = NbCouleur10 + 1
End Select
Next
MsgBox "Voici les résultats : " + vbCrLf + _
"Couleur 1 : " + VBA.Str$(NbCouleur1) + vbCrLf + _
"Couleur 2 : " + VBA.Str$(NbCouleur2) + vbCrLf + _
"Couleur 3 : " + VBA.Str$(NbCouleur3) + vbCrLf + _
"Couleur 4 : " + VBA.Str$(NbCouleur4) + vbCrLf + _
"Couleur 5 : " + VBA.Str$(NbCouleur5) + vbCrLf + _
"Couleur 6 : " + VBA.Str$(NbCouleur6) + vbCrLf + _
"Couleur 7 : " + VBA.Str$(NbCouleur7) + vbCrLf + _
"Couleur 8 : " + VBA.Str$(NbCouleur8) + vbCrLf + _
"Couleur 9 : " + VBA.Str$(NbCouleur9) + vbCrLf + _
"Couleur 10 : " + VBA.Str$(NbCouleur10)
End Sub
ça met un bout de temps qu'il faut laisser à la machine pour faire les
décomptes. Une amélioration peut être de renseigner une barre de
progression pour qu'on se rende compte du temps qu'il reste à attendr e.
A priori il est préférable d'avoir l'option Explicit initialisée, auquel
cas on sera obligé de déclarer comme Integer les variables Couleur1 à
Couleur10, et NbCouleur1 à NbCouleur10.
Dim NbCouleur1 As Integer
(ou Int, en pratiquant plusieurs langages je finis par avoir un doute).
djeel a écrit, le 10/12/2011 10:11 :Salut !
J'utilise excel 2003.
J'ai un tableau comportant environ 1100 cellules ; certaines (environ
300) sont coloriées (couleur de remplissage) avec une dizaine de
couleurs différentes, les autres restant en blanc.
Je voudrais comptabiliser le nombre de cellules de chaque couleur.
Est-ce possible pour un utilisateur lambda comme moi ?
Merci de votre aide et cordialement
Bonjour,
Il me semble que VBA a toute sa place pour faire ça.
Il convient de commencer par renseigner les valeurs représentant les
couleurs, en les lisant avec un code VBA, au besoin on peut y revenir.
Il faut vérifier dans l'aide de Interior la propriété BackColor, pour
laquelle j'ai un petit doute (dommage, je m'en suis servi hier). Si il
s'agit de couleurs fixes, qu'on peut les mettre en dur dans le code, ç a
peut donner quelque chose comme ça :
Public Sub CompteCouleurs
Dim C As Range 'Cell
Couleur1 = 255
Couleur2 = 1024
.
.
.
Couleur10 = 20505415
NbCouleur1 = 0
NbCouleur2 = 0
NbCouleur3 = 0
NbCouleur4 = 0
NbCouleur5 = 0
NbCouleur6 = 0
NbCouleur7 = 0
NbCouleur8 = 0
NbCouleur9 = 0
NbCouleur10 = 0
For Each C in ActiveSheet.UsedRange
Select Case C.Interior.BackColor
Case Couleur1
NbCouleur1 = NbCouleur1 + 1
Case Couleur2
NbCouleur2 = NbCouleur2 + 1
Case Couleur3
NbCouleur3 = NbCouleur3 + 1
Case Couleur4
NbCouleur4 = NbCouleur4 + 1
Case Couleur5
NbCouleur5 = NbCouleur5 + 1
Case Couleur6
NbCouleur7 = NbCouleur6 + 1
Case Couleur7
NbCouleur7 = NbCouleur7 + 1
Case Couleur8
NbCouleur8 = NbCouleur8 + 1
Case Couleur1
NbCouleur9 = NbCouleur9 + 1
Case Couleur1
NbCouleur10 = NbCouleur10 + 1
End Select
Next
MsgBox "Voici les résultats : " + vbCrLf + _
"Couleur 1 : " + VBA.Str$(NbCouleur1) + vbCrLf + _
"Couleur 2 : " + VBA.Str$(NbCouleur2) + vbCrLf + _
"Couleur 3 : " + VBA.Str$(NbCouleur3) + vbCrLf + _
"Couleur 4 : " + VBA.Str$(NbCouleur4) + vbCrLf + _
"Couleur 5 : " + VBA.Str$(NbCouleur5) + vbCrLf + _
"Couleur 6 : " + VBA.Str$(NbCouleur6) + vbCrLf + _
"Couleur 7 : " + VBA.Str$(NbCouleur7) + vbCrLf + _
"Couleur 8 : " + VBA.Str$(NbCouleur8) + vbCrLf + _
"Couleur 9 : " + VBA.Str$(NbCouleur9) + vbCrLf + _
"Couleur 10 : " + VBA.Str$(NbCouleur10)
End Sub
ça met un bout de temps qu'il faut laisser à la machine pour faire les
décomptes. Une amélioration peut être de renseigner une barre de
progression pour qu'on se rende compte du temps qu'il reste à attendr e.
A priori il est préférable d'avoir l'option Explicit initialisée, auquel
cas on sera obligé de déclarer comme Integer les variables Couleur1 à
Couleur10, et NbCouleur1 à NbCouleur10.
Dim NbCouleur1 As Integer
(ou Int, en pratiquant plusieurs langages je finis par avoir un doute).
Il me semble que VBA a toute sa place pour faire ça.
Il convient de commencer par renseigner les valeurs représentant les
couleurs, en les lisant avec un code VBA,
Il me semble que VBA a toute sa place pour faire ça.
Il convient de commencer par renseigner les valeurs représentant les
couleurs, en les lisant avec un code VBA,
Il me semble que VBA a toute sa place pour faire ça.
Il convient de commencer par renseigner les valeurs représentant les
couleurs, en les lisant avec un code VBA,
Bonjour,
Sélectionne la plage à traiter et exécute la macro ci-dessous. Elle ajoute
une feuille avec les couleurs en colonne A et le nombre de cellules
correspondant en colonne B.
Sub test()
Dim Tabl1() As Double, Tabl2() As Double
Dim c As Range, Coul As Variant
ReDim Tabl1(0)
ReDim Tabl2(0)
With Application
For Each c In Selection
If c.Interior.ColorIndex <> xlNone Then
Coul = .Match(c.Interior.Color, Tabl1(), 0)
If IsNumeric(Coul) Then
Tabl2(Coul - 1) = Tabl2(Coul - 1) + 1
Else
ReDim Preserve Tabl1(UBound(Tabl1()) + 1)
ReDim Preserve Tabl2(UBound(Tabl2()) + 1)
Tabl1(UBound(Tabl1())) = c.Interior.Color
Tabl2(UBound(Tabl2())) = 1
End If
End If
Next c
Sheets.Add
[A1].Resize(UBound(Tabl1())) = .Transpose(Tabl1())
[B1].Resize(UBound(Tabl2())) = .Transpose(Tabl2())
End With
End Sub
Bonjour,
Sélectionne la plage à traiter et exécute la macro ci-dessous. Elle ajoute
une feuille avec les couleurs en colonne A et le nombre de cellules
correspondant en colonne B.
Sub test()
Dim Tabl1() As Double, Tabl2() As Double
Dim c As Range, Coul As Variant
ReDim Tabl1(0)
ReDim Tabl2(0)
With Application
For Each c In Selection
If c.Interior.ColorIndex <> xlNone Then
Coul = .Match(c.Interior.Color, Tabl1(), 0)
If IsNumeric(Coul) Then
Tabl2(Coul - 1) = Tabl2(Coul - 1) + 1
Else
ReDim Preserve Tabl1(UBound(Tabl1()) + 1)
ReDim Preserve Tabl2(UBound(Tabl2()) + 1)
Tabl1(UBound(Tabl1())) = c.Interior.Color
Tabl2(UBound(Tabl2())) = 1
End If
End If
Next c
Sheets.Add
[A1].Resize(UBound(Tabl1())) = .Transpose(Tabl1())
[B1].Resize(UBound(Tabl2())) = .Transpose(Tabl2())
End With
End Sub
Bonjour,
Sélectionne la plage à traiter et exécute la macro ci-dessous. Elle ajoute
une feuille avec les couleurs en colonne A et le nombre de cellules
correspondant en colonne B.
Sub test()
Dim Tabl1() As Double, Tabl2() As Double
Dim c As Range, Coul As Variant
ReDim Tabl1(0)
ReDim Tabl2(0)
With Application
For Each c In Selection
If c.Interior.ColorIndex <> xlNone Then
Coul = .Match(c.Interior.Color, Tabl1(), 0)
If IsNumeric(Coul) Then
Tabl2(Coul - 1) = Tabl2(Coul - 1) + 1
Else
ReDim Preserve Tabl1(UBound(Tabl1()) + 1)
ReDim Preserve Tabl2(UBound(Tabl2()) + 1)
Tabl1(UBound(Tabl1())) = c.Interior.Color
Tabl2(UBound(Tabl2())) = 1
End If
End If
Next c
Sheets.Add
[A1].Resize(UBound(Tabl1())) = .Transpose(Tabl1())
[B1].Resize(UBound(Tabl2())) = .Transpose(Tabl2())
End With
End Sub
préalables :
1 - comment sont attribuées les couleurs ???
- manuellement
2 - le changement de couleur n'est pas un évènement lié au recalcul.
i.e. il faut efffectuer un recalcul après chaque changement de couleur
3 - relativement au référentiel "utilisateur lambda" et aux 2 points
précédents :
soit dénombrement selon conditions (MEFC)
soit solutions via macro VBA (dénombrement selon remplissage)
soit une solution via macro XL4
http://www.ozgrid.com/VBA/sum-count-cells-by-color.htm
http://www.ozgrid.com/VBA/Sum.htm
http://excelabo.net/trucs/addition_rouge
préalables :
1 - comment sont attribuées les couleurs ???
- manuellement
2 - le changement de couleur n'est pas un évènement lié au recalcul.
i.e. il faut efffectuer un recalcul après chaque changement de couleur
3 - relativement au référentiel "utilisateur lambda" et aux 2 points
précédents :
soit dénombrement selon conditions (MEFC)
soit solutions via macro VBA (dénombrement selon remplissage)
soit une solution via macro XL4
http://www.ozgrid.com/VBA/sum-count-cells-by-color.htm
http://www.ozgrid.com/VBA/Sum.htm
http://excelabo.net/trucs/addition_rouge
préalables :
1 - comment sont attribuées les couleurs ???
- manuellement
2 - le changement de couleur n'est pas un évènement lié au recalcul.
i.e. il faut efffectuer un recalcul après chaque changement de couleur
3 - relativement au référentiel "utilisateur lambda" et aux 2 points
précédents :
soit dénombrement selon conditions (MEFC)
soit solutions via macro VBA (dénombrement selon remplissage)
soit une solution via macro XL4
http://www.ozgrid.com/VBA/sum-count-cells-by-color.htm
http://www.ozgrid.com/VBA/Sum.htm
http://excelabo.net/trucs/addition_rouge
Super ! Ca marche !!!
ça m'a permis de me rendre compte que mes couleurs n'étaient pas uniformes
: j'avais 2 jeunes, 2 verts, ...
J'a iencore un petit souci puisque la macro me renvoie un nombre de cellules
de couleurs blanche ne corrspondant pas au nombre de cellules vides et donc
supposées blanches, et deux nombres pour lesquels je ne trouve pas la couleur
correspondante...
Merci et cordialement
Super ! Ca marche !!!
ça m'a permis de me rendre compte que mes couleurs n'étaient pas uniformes
: j'avais 2 jeunes, 2 verts, ...
J'a iencore un petit souci puisque la macro me renvoie un nombre de cellules
de couleurs blanche ne corrspondant pas au nombre de cellules vides et donc
supposées blanches, et deux nombres pour lesquels je ne trouve pas la couleur
correspondante...
Merci et cordialement
Super ! Ca marche !!!
ça m'a permis de me rendre compte que mes couleurs n'étaient pas uniformes
: j'avais 2 jeunes, 2 verts, ...
J'a iencore un petit souci puisque la macro me renvoie un nombre de cellules
de couleurs blanche ne corrspondant pas au nombre de cellules vides et donc
supposées blanches, et deux nombres pour lesquels je ne trouve pas la couleur
correspondante...
Merci et cordialement
Super ! Ca marche !!!
ça m'a permis de me rendre compte que mes couleurs n'étaient pas uniformes
: j'avais 2 jeunes, 2 verts, ...
J'a iencore un petit souci puisque la macro me renvoie un nombre de
cellules de couleurs blanche ne corrspondant pas au nombre de cellules
vides et donc supposées blanches, et deux nombres pour lesquels je ne
trouve pas la couleur correspondante...
Merci et cordialement
Les cellules vides ne sont pas comptabilisées et donc pas listées. La
première ligne, il ne faut pas tenir compte, j'ai oublié de la supprimer en
fin de macro.
Si, malgré tout, il subsiste une différence charge ton classeur sur cjint.com
et poste le lien généré.
Daniel
Super ! Ca marche !!!
ça m'a permis de me rendre compte que mes couleurs n'étaient pas uniformes
: j'avais 2 jeunes, 2 verts, ...
J'a iencore un petit souci puisque la macro me renvoie un nombre de
cellules de couleurs blanche ne corrspondant pas au nombre de cellules
vides et donc supposées blanches, et deux nombres pour lesquels je ne
trouve pas la couleur correspondante...
Merci et cordialement
Les cellules vides ne sont pas comptabilisées et donc pas listées. La
première ligne, il ne faut pas tenir compte, j'ai oublié de la supprimer en
fin de macro.
Si, malgré tout, il subsiste une différence charge ton classeur sur cjint.com
et poste le lien généré.
Daniel
Super ! Ca marche !!!
ça m'a permis de me rendre compte que mes couleurs n'étaient pas uniformes
: j'avais 2 jeunes, 2 verts, ...
J'a iencore un petit souci puisque la macro me renvoie un nombre de
cellules de couleurs blanche ne corrspondant pas au nombre de cellules
vides et donc supposées blanches, et deux nombres pour lesquels je ne
trouve pas la couleur correspondante...
Merci et cordialement
Les cellules vides ne sont pas comptabilisées et donc pas listées. La
première ligne, il ne faut pas tenir compte, j'ai oublié de la supprimer en
fin de macro.
Si, malgré tout, il subsiste une différence charge ton classeur sur cjint.com
et poste le lien généré.
Daniel
Les cellules vides ne sont pas comptabilisées et donc pas listées. La
première ligne, il ne faut pas tenir compte, j'ai oublié de la supprimer en
fin de macro.
Si, malgré tout, il subsiste une différence charge ton classeur sur
cjint.com et poste le lien généré.
Les cellules vides ne sont pas comptabilisées et donc pas listées. La
première ligne, il ne faut pas tenir compte, j'ai oublié de la supprimer en
fin de macro.
Si, malgré tout, il subsiste une différence charge ton classeur sur
cjint.com et poste le lien généré.
Les cellules vides ne sont pas comptabilisées et donc pas listées. La
première ligne, il ne faut pas tenir compte, j'ai oublié de la supprimer en
fin de macro.
Si, malgré tout, il subsiste une différence charge ton classeur sur
cjint.com et poste le lien généré.