![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2005
Messages: 155
|
Re bonjour à tous,
voilà, je dois gérer dans un tableau des commandes: refusées, accéptées ou en cours. Un tableau regroupe totues les données des commandes et à la fin de chaque ligne une cellule contient une des valeurs suivantes: _en cours _acceptées _refusées Mais pour que cela soit plus voyant, je voudrais modifié la couleur du texte de la ligne en fonction de la valeur affiché à la fin des lignes. J'ai essayé avec une boucle If comme suit: Dim coul As Range If coul.Value = 'accepté' Then coul.Row.Font.ColorIndex = 43 ElseIf coul.Value = 'refusé' Then coul.Row.Font.ColorIndex = 5 ElseIf coul.Value = 'en attente' Then coul.Row.Font.ColorIndex = 3 Mais ce n'est apparement pas la bonne méthode: la propriété 'Row' semble fausse; quelle propriété dois-je utiliser? Merci d'avance, a + Toutou ![]() |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2005
Messages: 126
|
Salut toutou,
je te propose le code suivant pour résoudre ton problème de mise forme qui se trouve également dans le fichier joint (s'il passe): Sub MiseEnForme ' ' MiseEnForme ' Macro enregistrée le 25/10/2005 par Guillaume JOLLY ' Dim jDepart As Integer Dim FeuilleDepart As Variant Set FeuilleDepart = ActiveWorkbook.Sheets('feuil1') jDepart = 1 'parcours du tableau Do While FeuilleDepart.Cells(jDepart, 1).Value <> '' 'remplissage des cellule de la feuille d'arrivée 'si 'accepé' la cellule de la valeur est coloré en mauve If FeuilleDepart.Cells(jDepart, 1) = 'accepté' Then FeuilleDepart.Rows(jDepart).Interior.ColorIndex = 39 End If 'si 'refusé la cellule de la valeur est coloré en vert pâle If FeuilleDepart.Cells(jDepart, 1) = 'refusé' Then FeuilleDepart.Rows(jDepart).Interior.ColorIndex = 43 End If 'si en attente la cellule de la valeur est coloré en bleu pâle If FeuilleDepart.Cells(jDepart, 1) = 'en attente' Then FeuilleDepart.Rows(jDepart).Interior.ColorIndex = 33 End If 'mise à jour des compteur de position jDepart = jDepart + 1 Loop End Sub C'est une boucle qui parcour ton tableau tant qu'elle ne trouve pas de case vide. Adapte là à ton problème. N'hésite pas a demander si tu te pose des questions Bon courrage |
|
|
|
|
|
#3 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Sète
Version Excel : Excel 2003 (PC)
Messages: 2 878
|
Bonjour Toutou, bonjour le forum,
tu ne définis par coul dans ta macro. Dans l'exemple qui suit, j'ai considéré que la dernière colonne éditée de chaque ligne était F (tu adapteras...) : Citation:
Bonjour Anuki on s'est croisés... Message édité par: Robert, à: 25/10/2005 16:28 |
|
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2005
Messages: 126
|
je vais essayer de joindre à nouveau le fichier, si ça ne marche pas tu as toujour le code
A+ [file name=Classeur1_20051025162531.zip size=7205]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20051025162531.zip[/file] |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2005
Messages: 29
|
Bonjour
Tu peux faire cela si tu veux. Sub toto() Dim CELL As Range For Each CELL In Range('A1:A10') If CELL = 'accepté' Then Range(CELL.Row & ':' & CELL.Row).Font.ColorIndex = 43 ElseIf CELL = 'refusé' Then Range(CELL.Row & ':' & CELL.Row).Font.ColorIndex = 5 ElseIf CELL = 'en attente' Then Range(CELL.Row & ':' & CELL.Row).Font.ColorIndex = 3 End If Next End Sub A plus tard Christophe |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2005
Localisation: Inzinzac-Lochrist
Version Excel : Excel 2000 (PC)
Messages: 1 531
|
Bonjour Toutou, Bonjour Anuky, bonjour Robert,
Pourquoi pas tout simplement avec une MFC. Si la dernière cellule est en colonne I par exemple, une MFC sur toutes les colonnes de A à I avec 3 formules du type: =$I3='Accepté' ==> motif couleur 1 =$I3='En cours' ==> motif Couleur 2 =$I3='Refusé' ==> motif couleur 3 A recopier sur toutes les lignes souhaitées. @+ Gael Pardon, Nikolaï, je ne t'avais pas vu, Bonjour à toi aussi. @+ Gael Message édité par: Gael, à: 25/10/2005 16:32 |
|
|
|
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
bonjour,
ceci marche mieux For Each l In Selection.Rows If l.Cells(1, 1).Value = 'accepté' Then l.Font.ColorIndex = 43 ElseIf l.Cells(1, 1).Value = 'refusé' Then l.Font.ColorIndex = 5 ElseIf l.Cells(1, 1).Value = 'en attente' Then l.Font.ColorIndex End If Next a adapter bien sur |
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2005
Messages: 155
|
Bobnjour ou Re-bonjour à tous,
Merci de vous être arrété sur mon problème, pour l'instant je n'ai essayé que la proposittion de Robert (qui fonctionne bien) car c'était la plus rapide à réaliser. Je vous tiendrait au courant surement demain pour les autres codes; Encore merci beucoup pour votre aide précieuse, bonne soirée, @ + Toutou ![]() |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|