Rechercher : dans
Par :

Conditionner le coloriage des lignes (boucle)

Dernière réponse le 25 mar 2009 à 18:59:55 davidbecks, le 25 mar 2009 à 16:39:15 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaiterais éxécuter une boucle pour l'application suivante. ça "marche" pour A1, mais je voudrais le faire en boucle pour la i ème cellule de la colonne A.
Idéalement, chaque changement de la cellule de la colonne A provoque le changement de couleur de ligne (pas besoin de refaire tourner la macro pour activer la bonne couleur). Merci de votre aide pour cette macro somme toute facile...pour les expérimentés !

Sub color()
If Range("A1") = "P" Then
Rows("1:1").Select
Selection.Interior.ColorIndex = 38
End If
If Range("A1") = "G" Then
Rows("1:1").Select
Selection.Interior.ColorIndex = 37
End If
If Range("A1") = "A" Then
Rows("1:1").Select
Selection.Interior.ColorIndex = 6
End If
End Sub

Configuration: Windows 2003
Internet Explorer 6.0

Meilleures réponses pour « Conditionner le coloriage des lignes (boucle) » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Syntaxe de la ligne de commande NT/XP VoirSyntaxe de la ligne de commande NT/XP Voici une page web décrivant la syntaxe de la ligne de commande de Windows NT/2000/XP/2003 (cmd.exe). On y retrouve comment faire des boucles, découper des chaînes de caractères, manipuler les dates, utiliser...
Les paiements en ligne VoirLes moyens de paiement en ligne Renouveler son nom de domaine, acheter des fournitures de bureau, payer ses liens sponsorisés, acheter des billets de train ou d’avion pour ses voyages d’affaires… un chef d’entreprise a mille et une bonnes raisons...
Java: Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
ADSL - Le dégroupage de la boucle locale VoirIntroduction au dégroupage de la boucle locale On appelle "boucle locale" la partie finale de la ligne téléphonique arrivant à l'abonné. Afin de vous faire profiter de l'internet à haut débit (ADSL), les Fournisseurs d'Accès à Internet (FAI)...
Javascript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle' On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non, ce qui permet notamment de donner de l'interactivité à vos scripts : Instruction...

1

Polux31, le 25 mar 2009 à 17:02:22

Bonjour,

Peut être en faisant comme ça:

Sub color() 
Dim plage As Range
Dim cl

Set plage = Range("A:A")
For each cl in plage
   If cl.Value = "P" Then 
      cl.Interior.ColorIndex = 38 
   End If 
   If cl.Value = "G" Then 
      cl.Interior.ColorIndex = 37 
   End If 
   If cl.Value = "A" Then 
      cl.Interior.ColorIndex = 6 
   End If 
Next cl

End Sub


;o) «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

2

davidbecks, le 25 mar 2009 à 17:16:17

Merci Polux !

Cependant, je souhaiterais colorier le row correspondant en entier, comment faire SVP ?
De plus, les lettres P, G, A, correspondent à 3 colonnes différentes. peut on les nommer cl1, cl2 et cl3 ?

If Range("B1") = "P" Then
Rows("1:1").Select
Selection.Interior.ColorIndex = 38
End If
If Range("C1") = "G" Then
Rows("1:1").Select
Selection.Interior.ColorIndex = 37
End If
If Range("A1") = "A" Then
Rows("1:1").Select
Selection.Interior.ColorIndex = 6
End If

Merci beaucoup !!

Davidbecks

Répondre à davidbecks

3

Polux31, le 25 mar 2009 à 18:51:17

Une fois de plus un problème mal exposé ... ça devient lassant et pénible ... pourquoi ne pas tout dire dès le début. J'ai vraiment l'impression d'avoir perdu mon temps.

Il suffit de définir la plage autrement, c'est tout. Dans mon exemple on ne teste que la colonne A, si tu modifies le Set plage = Range("A:A") par Set plage = Range("A:Z"), le teste se fera sur toutes les cellules de la colonne A à la colonne Z en passant par la colonne B, C etc ....

Sub color() 
Dim plage As Range
Dim cl

Set plage = Range("A:Z")
For Each cl In plage
   If cl.Value = "P" Then
      Rows(cl.Row).Interior.ColorIndex = 38
   End If
   If cl.Value = "G" Then
      Rows(cl.Row).Interior.ColorIndex = 37
   End If
   If cl.Value = "A" Then
      Rows(cl.Row).Interior.ColorIndex = 6
   End If
Next cl

End Sub


Voilà.

On aurait pu gagner du temps ...

;o) «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

4

 davidbecks, le 25 mar 2009 à 18:59:55

Merci !

je débute, donc mes questions sont un peu débiles et mal posées. désolé.

cdlt

Répondre à davidbecks