Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Excel - VB - Colorer une ligne

KraaaL, le mardi 16 septembre 2008 à 10:50:47
Bonjour,

Il m'arrive souvent de parcourir votre forum (en posant des questions à Google...) mais là je ne trouve pas une réponse pouvant m'aider.

Donc voici mon problème (en espérant que quelqu'un puisse m'aider...) :
(je vais essayer de bien m'exprimer parce que je suis super nul en informatique)

Sur une feuille dans Excel je dois :

Colorer des lignes de 6 couleurs différentes en fonction des valeurs d'une cellule de cette ligne.
Les lignes commencent à la colonne A et se terminent à la colonne P.

La cellule qui détermine la couleur de la ligne se trouve en colonne J.

Les couleurs que la ligne doit prendre sont :

Jaune pâle pour "En attente"
Jaune foncé pour "Déclinée"
Bleu clair pour "En attente clt"
Vert clair pour "Gagnée"
Rouge pour "Perdue"
Vert foncé pour "Terminée"

Il y a plus d'une centaine de ligne.
Début à la ligne 6.

Fonctionnement du fichier :

On remplie les case A6 à P6 et en fonction de la valeur de J6, la ligne (de A6 à P6) passe dans l'une des 6 couleurs citées ci-dessus.
Idem pour la ligne 7, On remplie les cases A7 à P7 et en fonction de la valeur de P7, la ligne (de A7 à P7) passe dans l'une des 6 couleurs.
Idem pour les lignes 8, 9... jusqu'à la ligne 156.

Autres informations :

Je ne peux pas regroupé les 2 différents jaune ni les 2 différents vert.
Je ne peux pas utiliser la mise en forme conditionnelle.
Je bosse sur Excel 2003.

J'ai bien trouvé ça comme formule :

If Target.Value = "GHV" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(185, 253, 208)
End If

Mais le problème c'est que cela colorier la case qui à la valeur "GHV" et seulement 3 cases à droite...
Et en plus cela fonctionne n'importe ou dans la feuille... (chose que je ne souhaite pas)

Si une âme charitable veut bien se pencher sur mon problème, je lui en serait plus que fort reconnaissant.
D'avance merci.
Bonne journée.

KraaaL
(où l'incompétent en informatique...)
Configuration: Windows XP
Firefox 2.0.0.16
Répondre à KraaaL  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
wilfried_42, le mardi 16 septembre 2008 à 11:14:19
bonjour

je te fournis une macro complementaire qui permet la mise en route de MFC pratiquement illimitées
http://cjoint.com/?jqlksHaX1h
Macro complementaire : Menu Outils / Macro complementaire / Parcourir / Cocher la macro

un fichier exemples : la feuille 2 t'interresse ainsi que la feuille MFC
http://cjoint.com/?jqlmGRbOFG

cette macro ne fait pas que cela, elle fait des MFC sonores, Par des dommentaires, Par des images, mais etant au boulot, je n'ai pas le fichier exemples complet Cordialement
Wilfried
Répondre à wilfried_42

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
RailBird, le mardi 16 septembre 2008 à 11:24:49
Sub Coloriage()

For i = 1 To 20
For j = 1 To 200

If ActiveSheet.Cells(i, j) = "GHV" Then
ActiveSheet.Cells(i, j).Interior.Color = RGB(185, 253, 208)
End If

Next
Next

End Sub
Répondre à RailBird

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
KraaaL, le mardi 16 septembre 2008 à 12:19:47
Merci pour vos réponses aussi rapides !

wilfried_42 :

j'ai fait exactement ce que tu m'as dit avec le premier fichier mais rien ne se passe...
Je ne peux toujours pas mettre plus de 3 MFC.

Pour le second fichier, j'ai à peu près compris comment celui-ci fonctionne, j'essaie de l'adapter à mon fichier.
Je te ferai un retour dès que j'aurai terminé.

RailBird :

Peux tu m'expliquer à quoi sert ta macro ?
Parce que je l'ai exécutée mais rien ne se passe...
Peux tu me donner plus d'informations STP ??

Encore merci à vous 2,
Bon app' !

KraaaL
Répondre à KraaaL

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Papou79, le mardi 16 septembre 2008 à 13:42:39
Bonjour Kraaal, les participants,

Je t'envoie un fichier exemple avec tes critères.
La liste des états se trouve en feuille 2. Les cellules "A6:A156" ont une liste déroulante contenant tes 6 états possibles. Il te sera très simple de modifier la liste le cas échéant.
La macro se déroule après saisie dans une des cellules de la feuille 1. Si la cellule modifiée n'est pas dans la zone "A6:P156", elle n'est pas exécutée.

Cliques sur ce lien :
http://www.cijoint.fr/cjlink.php?file=cj200809/cijqync3a8.xls

Espérant t'avoir aidé.

Cordialement.
Répondre à Papou79

5


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
michel_m, le mardi 16 septembre 2008 à 14:02:44
Bonjour tout le monde

la macro ci dessous colorie la ligne( [6-156] entre colonnes A et P suivant la valeur indiquée dans la colonne J . La couleur est annulée si une nouvelle saisie n'est pas valable (critères sensibles à la casse)

comme l'indique Papou, tu as intérêt a créer une liste déroulante (si tu ne sais pas comment faire, regarde dans les astuces du site CCM)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Byte, plage As Range

If Intersect(Target, Range("J6:J156")) Is Nothing Then: Exit Sub

lig = Target.Row
Set plage = Range(Cells(lig, 1), Cells(lig, 16))

Select Case Target
    Case Is = "En attente"
        plage.Interior.ColorIndex = 19 'Jaune pâle pour "En attente"
     Case Is = "Déclinée"
        plage.Interior.ColorIndex = 27 'Jaune foncé pour "Déclinée"
    Case Is = "En attente clt"""
        plage.Interior.ColorIndex = 34 'Bleu clair pour "En attente clt"
    Case Is = "Gagnée"
        plage.Interior.ColorIndex = 35 'Vert clair pour "Gagnée"
    Case Is = "Perdue"
        plage.Interior.ColorIndex = 3 'Rouge pour "Perdue"
    Case Is = "Terminée"
        plage.Interior.ColorIndex = 31 'Vert foncé pour "Terminée"
    Case Else
        plage.Interior.ColorIndex = -4142 ' enlève la couleur
End Select

Set plage = Nothing
End Sub


Pour l'installer:

clic droit sur l'ongleet de ta feuille de travail
sélectionne "code"
copie colle la macro ci dessus
Michel
Répondre à michel_m

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
RailBird, le mardi 16 septembre 2008 à 14:07:27
En gros, ma macro elle sert à colorer la/les cellules contenant le chaine "GHV" en vert clair ce qui était ta demande.
Sinon rien ne se passe.
Elle s'éxecute pour les lignes 1 à 20 et les colonnes 1 à 200 d'ailleurs faudrait changé par :

Sub Coloriage()

For i = 1 To 200
For j = 1 To 20

If ActiveSheet.Cells(i, j) = "GHV" Then
ActiveSheet.Cells(i, j).Interior.Color = RGB(185, 253, 208)
End If

Next
Next

End Sub

Maintenant la macro parcourt de la ligne 1 à 200, pour les colonnes 1 à 20.
Il est possible d'améliorer ce code afin de l'adapter à ton besoin.

Je pense que c'est le type de code que tu voulais.
Répondre à RailBird

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 KraaaL, le mardi 16 septembre 2008 à 16:51:29
Merci beaucoup à tous !!!!

RailBird, j'ai compris le principe de ta macro et ai réussi à l'utiliser merci !!

Michel_m, après avoir donné un nom à la macro j'ai pu l'utiliser et ça marche également !!

Papou79, comment dire... Tu m'as fait tout le boulot !!
J'ai plus qu'à calquer mon fichier sur celui que tu m'as donné et ça roule !!

Je vais donc prendre ta solution (ne m'en voulait pas RailBird et Michel_m mais je n'ai pas suffisamment de temps pour me mettre au VB donc je prend le fichier déjà fait)

En tous cas un grand merci à vous tous !!!
En parcourant le forum ça m'a souvent aidé à trouver des réponses à mes soucis (exemple pour le listes déroulante de choix que je maîtrise maintenant), mais là je ne pensais pas qu'on m'aurait solutionné mon problème en moins d'une journée !!

Encore merci à tous et un grand bravo à Commentcamarche.net c'est vraiment un site super !!!

Merci beaucoup à tous !!
A bientôt,

Bien à vous,

KraaaL


PS : on peut locker ce topic et le mettre dans les résolus ;)
Répondre à KraaaL
VBA excel insérer une ligne vide (Résolu) Bonjour, Je voudrais en vba excel insérer des lignes à chaque fois qu'une valeur d'une cellule change par rapport à celle du dessus. exemple : il faudrait que j'insére une ligne vide entre 15 et 20, entre 20 et 23, entre 23 et 26.... www.commentcamarche.net/forum/affich-4126535-vba-excel-inserer-une-ligne-vide
Colorier ligne excel SI (Résolu) Bonjour, j'aurai besoin d'un coup de main. j'ai un tableau excel avec plusieurs ligne. Dans la colonne E j'ai soit "oui" soit "non". j'aimerai que toute la ligne se mette en rouge si il y a le mot "non" sur une ligne. Je ne... www.commentcamarche.net/forum/affich-4161549-colorier-ligne-excel-si
Excel VBA - Textbox à saisie conditionnée (Résolu) Bonjour, Après avoir longtemps suivi en visiteur, j'ai décidé de m'inscrire, pour faciliter les échanges. Une fois n'est pas coutume, je suis sur une petite programmation Excel VBA pour laquelle je rencontre quelques difficultés. Je... www.commentcamarche.net/forum/affich-3696419-excel-vba-textbox-a-saisie-conditionnee
Figer une ligne dans un tableau ExcelPour figer la ligne 1 (par exemple) dans une feuille excel : Sélectionnez la ligne 2, Puis allez dans le menu "Fenêtres" et option "Figer les volets". www.commentcamarche.net/faq/sujet-7684-figer-une-ligne-dans-un-tableau-excel
Excel : même étiquette lignes et colonnes (Résolu)Bonjour, Dans excel, logiquement, les lignes portent des numéros et les colonnes des lettres. depuis quelques jours, je constate que les colonnes portent également des chiffres, et je ne sais comment par quelle manip. j'aimerais tout simplement... www.commentcamarche.net/forum/affich-5707950-excel-meme-etiquette-lignes-et-colonnes
VBA recherche du max et du min (Résolu)Bonjour, Je travaille sur Excel/VBA. Sur Excel je sais que les fonction min et max existe. Mais sur VBA, Est ce qu'il y a une fonction qui trouve le minimum et une fonction qui trouve le maximum, ou bien c'est à moi de créer ces fonctions? Merci www.commentcamarche.net/forum/affich-7540296-vba-recherche-du-max-et-du-min
Excel VBA selection lignes avec condition (Résolu)Bonjour, Après un 1er message parti trop vite (voir linette 44, 21.45), voici mon problème. Je désire sélectionner les lignes répondant à la valeur "contrat" dans la colonne A et différent de "816 et 819" dans la colonne C. Les lignes sélectionnées... www.commentcamarche.net/forum/affich-2828324-excel-vba-selection-lignes-avec-condition