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)
- Partager des photos en ligne - Guide
- Coloriage 2 - Télécharger - Études & Formations
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
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)