Conditionner le coloriage des lignes (boucle)
Résolu
davidbecks
-
davidbecks -
davidbecks -
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
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
A voir également:
- Conditionner le coloriage des lignes (boucle)
- Coloriage 2 - Télécharger - Études & Formations
- Partager des photos en ligne - Guide
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Comment supprimer des lignes dans un tableau word - Guide
- Chaque fichier en ligne sur le web a un chemin d’accès sur un serveur. c’est le cas du fichier du logo présent sur la page de cette ville. quel est le chemin de ce fichier à partir de la racine du site ? - Forum Graphisme
4 réponses
Bonjour,
Peut être en faisant comme ça:
;o)
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)
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
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
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 ....
Voilà.
On aurait pu gagner du temps ...
;o)
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)