A voir également:
- [excel et VB] comptage de couleurs
- Si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne excel - Guide
4 réponses
cb103
Messages postés
487
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
19 janvier 2007
69
21 nov. 2006 à 20:28
21 nov. 2006 à 20:28
J'avais conçu un bout de macro pour le boulot pour faire du comptage de couleur dans un fichier excel.
Je vais le rechercher et voir ça !
Je vais le rechercher et voir ça !
cb103
Messages postés
487
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
19 janvier 2007
69
21 nov. 2006 à 20:41
21 nov. 2006 à 20:41
Voilà en gros à quoi ressemble le macro, pour des couleurs simple, après il me smble qu'il fallait utiliser d'autres codes de couleurs pour les couleurs complexes.
Je vais regarder au boulot, car je n'ai pas chez moi la fin du macro que j'avais fait..là c'était juste un test...
Je regarde ça.
Mais avec ça, ça peut déjà permettre de faire des trucs..
Sub Bouton1_QuandClic()
'
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbBlack Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Range("c17").Select
ActiveCell.FormulaR1C1 = compterRouge & " "
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbRed Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Range("c18").Select
ActiveCell.FormulaR1C1 = compterRouge & " "
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbYellow Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Range("c19").Select
ActiveCell.FormulaR1C1 = compterRouge & " "
End Sub
Je vais regarder au boulot, car je n'ai pas chez moi la fin du macro que j'avais fait..là c'était juste un test...
Je regarde ça.
Mais avec ça, ça peut déjà permettre de faire des trucs..
Sub Bouton1_QuandClic()
'
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbBlack Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Range("c17").Select
ActiveCell.FormulaR1C1 = compterRouge & " "
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbRed Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Range("c18").Select
ActiveCell.FormulaR1C1 = compterRouge & " "
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbYellow Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Range("c19").Select
ActiveCell.FormulaR1C1 = compterRouge & " "
End Sub
cb103
Messages postés
487
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
19 janvier 2007
69
22 nov. 2006 à 17:46
22 nov. 2006 à 17:46
Voici une partie du macro final que j'avais concu...Pour un calcul de couleurs par ligne....
Si besoin de + de renseignements, le demander...
Sub centrage()
'
'
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A4:AO4")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT4").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j 2L
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A5:AO5")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT5").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j3l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A6:AO6")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT6").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j3l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A7:AO7")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT7").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j4l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A8:AO8")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT8").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j5l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A9:AO9")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT9").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j6l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A10:AO10")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT10").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j7l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A11:AO11")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT11").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j8l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A12:AO12")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT12").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j9l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A13:AO13")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT13").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j10l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A14:AO14")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT14").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j11l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A15:AO15")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT15").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
Si besoin de + de renseignements, le demander...
Sub centrage()
'
'
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A4:AO4")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT4").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j 2L
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A5:AO5")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT5").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j3l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A6:AO6")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT6").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j3l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A7:AO7")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT7").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j4l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A8:AO8")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT8").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j5l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A9:AO9")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT9").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j6l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A10:AO10")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT10").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j7l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A11:AO11")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT11").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j8l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A12:AO12")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT12").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j9l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A13:AO13")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT13").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j10l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A14:AO14")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT14").Select
ActiveCell.FormulaR1C1 = compterjaune & " "
'j11l
sommejaune = 0
compterjaune = 0
For Each cell In ActiveSheet.Range("A15:AO15")
If cell.Interior.ColorIndex = 3 Then
On Error Resume Next
sommejaune = sommejaune + cell.Value
On Error GoTo 0
compterjaune = compterjaune + 1
End If
Next
If compterjaune = 1 Then c = "cellule" Else c = "cellules"
Range("AT15").Select
ActiveCell.FormulaR1C1 = compterjaune & " "