Compter le texte en couleurs

S

Sonskriverez

Guest
Bonjour,

J'ai dans une même colonne des cellules avec un texte en bleu ou en rouge selon les cas.
Je voudrais pouvoir avoir une petite macro qui m'indique dans un msgbox le nombre de cellule écritent en rouge ou en bleu
merci de votre aide [file name=exemplecoul.zip size=4174]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemplecoul.zip[/file]
 

Pièces jointes

  • exemplecoul.zip
    4.1 KB · Affichages: 19
S

Sonskriverez

Guest
Laisser tomber j'ai trouvé !!!

comme quoi en bossant un peu...

Sub compte_couleur()
Range('D2').Select
For i = 1 To 500
If Cells(i, 4).Font.ColorIndex = 5 Then
cel_bleu = cel_bleu + 1
ElseIf Cells(i, 4).Font.ColorIndex = 3 Then
cel_rouge = cel_rouge + 1
Else
cel_rien = cel_rien + 1
End If
Next i
MsgBox 'Il y a ' & cel_bleu & ' cellules bleues, ' & cel_rouge & ' cellules rouges et ' & cel_rien & ' cellules vides'
End Sub
 

Le noob

XLDnaute Nouveau
Bonjour,

C'est sympa de faire partager tes 'découvertes', ça permet à des ignorants comme moi de découvrir quelques petites fonctions.

Mais j'ai juste deux petites questions :

1) Où est ce qu'on rentre ce genre d'instructions (des macros comme vous avez l'air de les appeler) et où est-ce qu'on obtient le résultat ?

2) Est-il possible de faire la même macro avec la couleur de fond des cellules (les motifs), mettre quelques chose au lieu de Font.ColorIndex ?

Merci
 

porcinet82

XLDnaute Barbatruc
salut a tous les deux,

Je vais tenter de repondre a tes question Le noob, les macro sont des petits programme que l'on place dans un module dans la partie Visual Basic Editor (Outils, Macro, Visual Basic Editor ou alors Alt+F11). Les resulatats sont obtenus dans tes feuilles excel normales, enfin la ou tu as precisé a ta macro 'd'agir'

pour la seconde quesiton, le code Font.ColorIndex correpond deja a la couleur de fond de tes cellules.

@+
 

Le noob

XLDnaute Nouveau
porcinet82 écrit:
salut a tous les deux,

Je vais tenter de repondre a tes question Le noob, les macro sont des petits programme que l'on place dans un module dans la partie Visual Basic Editor (Outils, Macro, Visual Basic Editor ou alors Alt+F11). Les resulatats sont obtenus dans tes feuilles excel normales, enfin la ou tu as precisé a ta macro 'd'agir'

pour la seconde quesiton, le code Font.ColorIndex correpond deja a la couleur de fond de tes cellules.

@+

Merci porcinet,

Puisque j'en suis à l'apprentissage : est-ce que tu pourrais me montrer ce que ça donne avec la macro que Sonskriverez a détaillé, avec le tableau excel qu'il a donné en exemple ?

(En fait, après avoir fait Alt+F11, je savais pas que faire : le menu est assez vaste :unsure: )

@+
 

porcinet82

XLDnaute Barbatruc
re,

Je rectifie la connerie que j'ai dite tout alors, la commande Font.ColorIndex traite la couleur du texte, concernant la couleur de fond de celllule, il s'agit de la commande Interior.ColorIndex

Je te joint un fichier en exemple ou j'ai repris la macro de Sonskriverez que j'ai légèrement modifié, mais en gardant la commande Font.ColorIndex. je te laisse le soin d'essyer de la modifier.

Pour tester la macro tu appuis sur le bouton lancer de la feuil1. Pour visualiser la macro, tu fais comme je te l'ai deja dis, a savoir Outils, Macro, Visual Basic Editor ou alors tu appuis sur Alt+F11. puis a gauche tu va dans Module\\Module1 et la tu verras la macro.

[file name=Le_noob.zip size=6831]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Le_noob.zip[/file]

Si tu as d'autres questions n'hésite pas...

@+
 

Pièces jointes

  • Le_noob.zip
    6.7 KB · Affichages: 39

Le noob

XLDnaute Nouveau
Sympa !
Merci beaucoup (ça marche pour la couleur de fond de la cellule aussi ;) )

Tout d'abord une petite question toute bête : où est-ce qu'on peut connaître le numéro d'une couleur ?

Ma deuxième question est d'ordre un peu plus général : où peut-on consulter le vocabulaire de Visual Basic et éventuellement essayer de découvrir de nouvelles fonctions ?

Par exemple, je ne saisis pas trop ce que veulent dire les instructions suivantes dans ton code : 'Range('A65536').End(xlUp).Row' et 'Cells(i, 1).Font.ColorIndex'

Voilà.
Merci beaucoup pour ton aide :)
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde :)

le noob, n'hésite pas à abuser de la touche F1.

sinon, la macro de porcinet avec quelques explications, pour t'aider.

Sub compte_couleur()
'declaration des variables integer signifie que la variable accepte des entiers de -32768 à +32768
Dim cel_bleu As Integer, cel_rouge As Integer, cel_rien As Integer
'inutile toute variable non initialisé est = à 0
cel_bleu = cel_rouge = cel_rien = 0

'Range('A1').Select'inutile
'pour i=1 jusqu'a la derniere cellule non vide de la colonne A
For i = 1 To Range('A65536').End(xlUp).Row
   
'si la cellule (cells(ligne, colonne)) i,1 à comme couleur de police 5 alors
   
If Cells(i, 1).Font.ColorIndex = 5 Then
       
'on incremente la variable cel_bleu de + 1
        cel_bleu = cel_bleu + 1
   
'si la cellule (cells(ligne, colonne)) i,1 à comme couleur de police 3 alors
   
ElseIf Cells(i, 1).Font.ColorIndex = 3 Then
       
'on incremente la variable cel_rouge de + 1
        cel_rouge = cel_rouge + 1
   
Else
   
'sinon (si la cellule n'est par rouge ou bleu)
       
'on incremente la variable cel_rien de + 1
        cel_rien = cel_rien + 1
   
'fin de condition
   
End If
'prochain i, donc ici ton i va devenir 2 i=i+1, puis3, etc...
Next i
   
'on renvoi le message
    MsgBox 'Il y a ' & cel_bleu & ' cellules bleues, ' & cel_rouge & ' cellules rouges et ' & cel_rien & ' cellules vides'

   
'cells(ligne, colonne) permet de trouver une cellule par sa ligne et sa colonne
   
'une autre syntaxe possible : range('a' & i)
End Sub

salut
 

porcinet82

XLDnaute Barbatruc
Bonsoir a ceux que je n'ai pas encore croisé,

Content que cela te plaise Le noob, et pour le vocabulaire vba, tu peux en trouver aisément sur internet, sinon je pense que certain livres doivent exister.

Merci Hervé d'avoir réalisé les explications de la macro, et bon week end a tous!!!

@+
 
S

sonskriverez

Guest
Hervé merci de ton explication détaillée.

lorsque une cellule vide est rencontrée, elle compte comme 'rien' comment la compter comme vide, de façon à avoir :

les rouges
les bleus
les vides
et les autres
 

Le noob

XLDnaute Nouveau
Merci à tous et notamment Hervé pour ses explications très détaillées.

Une dernière question qui est peut-être passée inaperçue dans mon dernier post : où est-ce qu'on peut avoir accès à la liste des couleurs et leur numéro correspondant ?


Merci encore :)
 

Hervé

XLDnaute Barbatruc
Bonsoir tout le monde

Noob, je crois que dans la zone de téléchargement tu devrais trouver ton bonheur, sinon lance cette macro et en colonne A tu auras l'index et en B la couleur :

Sub Bouton1_QuandClic()
Dim i As Byte

For i = 0 To 56
    Cells(i + 1, 1).Interior.ColorIndex = i
    Cells(i + 1, 2) = i
Next i
End Sub

salut
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 644
dernier inscrit
MOLOKO67