Compter des cases dont la police est rouge
Résolu/Fermé
Ju
-
30 juin 2008 à 09:43
katinounou Messages postés 5 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 6 avril 2012 - 6 avril 2012 à 18:34
katinounou Messages postés 5 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 6 avril 2012 - 6 avril 2012 à 18:34
A voir également:
- Compter des cases dont la police est rouge
- Police aptos - Accueil - Bureautique
- Police facebook - Guide
- Police instagram - Guide
- Police d'écriture journal ancien ✓ - Forum Graphisme
- Freeplug rouge ✓ - Forum Réseau
8 réponses
Mike-31
Messages postés
18360
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 février 2025
5 114
30 juin 2008 à 09:53
30 juin 2008 à 09:53
Salut,
testes cette macro
Sub inventaireRouge()
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.Range("A18:A24") 'plage de cellule à compter
If cell.Font.Color = vbRed Then 'Red est la couleur rouge
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"
MsgBox compterRouge & " " & c & " -- Total = " & sommeRouge 'Affiche boite compteur
Worksheets("feuil1").Range("G25").Value = compterRouge 'Affiche compteur dans ma cellule ici G25
End Sub
A+
testes cette macro
Sub inventaireRouge()
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.Range("A18:A24") 'plage de cellule à compter
If cell.Font.Color = vbRed Then 'Red est la couleur rouge
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"
MsgBox compterRouge & " " & c & " -- Total = " & sommeRouge 'Affiche boite compteur
Worksheets("feuil1").Range("G25").Value = compterRouge 'Affiche compteur dans ma cellule ici G25
End Sub
A+
Merci c'est exactement ce que je veux. La seule chose est que j'aimerais que cette recherche soit lancée sur plusieurs pages de mon classeur et que mon résultat soit global à ces feuilles. On peut faire un truc comme ça ??
Mike-31
Messages postés
18360
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 février 2025
5 114
30 juin 2008 à 15:02
30 juin 2008 à 15:02
Oui bien sur avec excel presque tout est possible
que veux tu exactement avoir le nombre de cellule dont la police est en rouge sur chaque feuille, ou la somme totale des cellules dont la police est en rouge sur l'ensemble des feuilles ou la somme par feuille et le total global qui s'afficherai sur une feuille ou une boite compteur
A+
que veux tu exactement avoir le nombre de cellule dont la police est en rouge sur chaque feuille, ou la somme totale des cellules dont la police est en rouge sur l'ensemble des feuilles ou la somme par feuille et le total global qui s'afficherai sur une feuille ou une boite compteur
A+
Ce qu'il me faut exactement c'est le nombre total de lignes dont la police est rouge sur l'ensemble des feuilles de mon classeur (car les lignes rouges sont les commandes dont nous n'avons pas encore le retour). J'ai une feuille de synthèse à la fin et je voudrais que ce chiffre apparaisse sur cette page pour savoir combien il me reste de "litiges"
Merci
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18360
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 février 2025
5 114
30 juin 2008 à 16:36
30 juin 2008 à 16:36
Tu me parle de ligne alors que nous étions sur des cellules !!!
y a t'il correspondance entre ligne et cellule j'explique une cellule rouge par ligne
y a t'il correspondance entre ligne et cellule j'explique une cellule rouge par ligne
Désolé je me suis mal exprimé je parle bien de ligne. C'est juste qu'en pensant au programme je pense à lui lancer la recherche sur une colonne d'où mon terme de cellule... Lol. Donc je veux bien savoir le nombre de lignes qui sont rouges sur tout l'ensemble et non pas le nombre de cellules :)
Mike-31
Messages postés
18360
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 février 2025
5 114
30 juin 2008 à 17:59
30 juin 2008 à 17:59
Ci joint un exemple, pour le comptage des lignes en rouge, le commencement et la fin de chaque ligne étant aléatoire, il convient de prendre une colonne de référence et de compter les cellules dont la police est rouge.
Dans le code macro tu trouveras après ' en vert quelques explications
https://www.cjoint.com/?gEr43UqJ4n
A+
__________________________________________________________________
Besoin d’aide. Auprès du forum, des bénévoles prennent le temps de décrypter vos explications parfois confuses, et proposent leur connaissance.
Solution trouvée, ayez la courtoisie de porter votre statut résolu. Afin que votre problème soit classé, et serve de référence pour d’autres cas similaires.
Dans le code macro tu trouveras après ' en vert quelques explications
https://www.cjoint.com/?gEr43UqJ4n
A+
__________________________________________________________________
Besoin d’aide. Auprès du forum, des bénévoles prennent le temps de décrypter vos explications parfois confuses, et proposent leur connaissance.
Solution trouvée, ayez la courtoisie de porter votre statut résolu. Afin que votre problème soit classé, et serve de référence pour d’autres cas similaires.
Merci beaucoup. J'ai tout de même une petite question car j'aime bien comprendre les choses :) A quoi sert la ligne de commande suivante :
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Merci
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
Merci
Mike-31
Messages postés
18360
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 février 2025
5 114
1 juil. 2008 à 14:32
1 juil. 2008 à 14:32
Salut,
En effet j'aurai pu écrire le code comme ci dessous, et tu peux le modifier si tu veux
If compterRouge = 1 Then c = "ligne"
Par contre dans la ligne ci dessous, je te conseille de réduire le champ de balayage pour gagner en rapidté
For Each cell In ActiveSheet.Range("B:B")
et l'écrire comme cela
For Each cell In ActiveSheet.Range("B1:B100") de ta première cellule à la dernière
A+
__________________________________________________________________
Besoin d’aide. Auprès du forum, des bénévoles prennent le temps de décrypter vos explications parfois confuses, et proposent leur connaissance.
Solution trouvée, ayez la courtoisie de porter votre statut résolu. Afin que votre problème soit classé, et serve de référence pour d’autres cas similaires.
En effet j'aurai pu écrire le code comme ci dessous, et tu peux le modifier si tu veux
If compterRouge = 1 Then c = "ligne"
Par contre dans la ligne ci dessous, je te conseille de réduire le champ de balayage pour gagner en rapidté
For Each cell In ActiveSheet.Range("B:B")
et l'écrire comme cela
For Each cell In ActiveSheet.Range("B1:B100") de ta première cellule à la dernière
A+
__________________________________________________________________
Besoin d’aide. Auprès du forum, des bénévoles prennent le temps de décrypter vos explications parfois confuses, et proposent leur connaissance.
Solution trouvée, ayez la courtoisie de porter votre statut résolu. Afin que votre problème soit classé, et serve de référence pour d’autres cas similaires.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
Modifié par eriiic le 5/04/2012 à 23:17
Modifié par eriiic le 5/04/2012 à 23:17
Bonjour tout le monde,
car les lignes rouges sont les commandes dont nous n'avons pas encore le retour
Juste une question : le rouge est mis manuellement ou par une mise en forme conditionnelle ?
Si c'est une MFC il te faut compter les lignes en utilisant les même conditions que la MFC.
eric
car les lignes rouges sont les commandes dont nous n'avons pas encore le retour
Juste une question : le rouge est mis manuellement ou par une mise en forme conditionnelle ?
Si c'est une MFC il te faut compter les lignes en utilisant les même conditions que la MFC.
eric
4 avril 2012 à 22:07
Quelle serait la macro si la couleur de police est bleue?
J'ai remplacé dans la macro ci-dessus "Rouge" par "Bleu" et "Red" par "Blue", mais ça ne marche pas.
Il faut préciser que c'est ma première macro :)
Merci par avance pour ta réponse
4 avril 2012 à 22:36
alors essaye d'écrire avec les index couleurs primaires ce sera plus facile. l'index du bleu est 5
Sub inventaireRouge()
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.Range("A18:A24") 'plage de cellule à compter
If cell.Font.ColorIndex = 5 Then '5 est l'index d'une couleur bleue
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"
MsgBox compterRouge & " " & c & " -- Total = " & sommeRouge 'Affiche boite compteur
Worksheets("feuil1").Range("G25").Value = compterRouge 'Affiche compteur dans ma cellule ici G25
End Sub
5 avril 2012 à 21:12
Tout d'abord merci mille fois d'avoir répondu aussi rapidement à ma requête.
C'est vraiment très sympa de ta part.
En essai, dans la feuille1 d'un classeur acceptant les macros, j'ai renseigné une suite de nombres de B2 à B9.
B3, B5, B8 sont de police bleue
B2, B4, B6, B7, B9 sont de police noire
Quand j'exécute ma macro, la fenêtre qui apparait affiche:
0 cellules-- total = 0
Voila comment j'ai transposé ta formule de rouge en bleu:
Sub inventaire5()
somme5 = 0
compter5 = 0
For Each cell In ActiveSheet.Range("B2:B9") 'plage de cellule à compter
If cell.Font.ColorIndex = 5 Then '5 est l'index d'une couleur bleue
On Error Resume Next
somme5 = somme5 + cell.Value
On Error GoTo 0
compter5 = compter5 + 1
End If
Next
If compter5 = 1 Then c = "cellule" Else c = "cellules"
MsgBox compter5 & " " & c & " -- Total = " & somme5 'Affiche boite compteur
Worksheets("feuil1").Range("C10").Value = compter5 'Affiche compteur dans ma cellule ici C10
End Sub
Je pense que vu le résultat j'ai du faire une erreur quelque part. Peux tu voir ce qui ne va pas?
Encore merci d'aider un débutant.
Modifié par Mike-31 le 5/04/2012 à 21:34
Explique exactement ce que tu veux faire, le code que tu as glané compte le nombre de cellules formatées (police de couleur déterminée) et faisait la somme des valeurs formatées de couleur déterminée.
Que veux-tu compter ou additionner !
Il faut faire attention au code couleur, depuis Excel 2007 nous en avons une multitude
si tu bidouilles le code il faut être précis, une variante
Sub inventaire5()
som = 0
compt = 0
For Each cell In ActiveSheet.Range("B2:B9") 'plage de cellule à compter
If cell.Font.ColorIndex = 5 Then '5 est l'index d'une couleur bleue
On Error Resume Next
som = som + cell.Value
On Error GoTo 0
compt = compt + 1
End If
Next
If compt = 1 Then c = "cellule" Else c = "cellules"
MsgBox compt & " " & c & " -- Total = " & som 'Affiche boite compteur
Worksheets("feuil1").Range("C10").Value = compt 'Affiche compteur dans ma cellule ici C10
Worksheets("feuil1").Range("C12").Value = som 'Affiche la somme dans ma cellule ici C12
End Sub
6 avril 2012 à 03:59
J'ai utilisé votre variante ci dessus mais je n'arrive toujours pas à solutionner le problème.
Est-il possible de vous faire parvenir le fichier afin que vous puissiez regarder quelle erreur je commets?
Merci par avance pour votre réponse