Colorer une ligne suivant contenu d'une cellule
simkmil
Messages postés
481
Date d'inscription
Statut
Membre
Dernière intervention
-
simkmil Messages postés 481 Date d'inscription Statut Membre Dernière intervention -
simkmil Messages postés 481 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai encore besoin de vos lumières.
Dans une feuille représentant des commandes, j'ai une colonne où j'écris (liste déroulante) "paiement reçu : OUI - NON"
Je voudrais qu'en fonction de ce qui se trouve dans cette colonne l'entièreté de ma ligne soit colorisée en jaune. (si rien d'écrit dans la cellule paiement) et le reste demeure avec un fond blanc.
J'y suis arrivé avec une MFC, sauf que cela n'est valable que pour la plage que j'ai sélectionnée au départ. Si je sélectionne une plus grande plage (en vue des commandes suivantes) alors le tout se colorise en jaune.
Ne voyant pas de solution avec MFC, je voudrais voir s'il n'y a pas une possibilité en VBA ?
Merci de votre aide
Dans une feuille représentant des commandes, j'ai une colonne où j'écris (liste déroulante) "paiement reçu : OUI - NON"
Je voudrais qu'en fonction de ce qui se trouve dans cette colonne l'entièreté de ma ligne soit colorisée en jaune. (si rien d'écrit dans la cellule paiement) et le reste demeure avec un fond blanc.
J'y suis arrivé avec une MFC, sauf que cela n'est valable que pour la plage que j'ai sélectionnée au départ. Si je sélectionne une plus grande plage (en vue des commandes suivantes) alors le tout se colorise en jaune.
Ne voyant pas de solution avec MFC, je voudrais voir s'il n'y a pas une possibilité en VBA ?
Merci de votre aide
A voir également:
- Colorer une ligne suivant contenu d'une cellule
- Aller à la ligne dans une cellule excel - Guide
- Comment colorer une cellule excel avec une formule si - Guide
- Partager photos en ligne - Guide
- Bloquer une cellule excel - Guide
- Mètre en ligne - Guide
8 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
je pense que tu peux facilement faire cela en VBA.
toutefois je n'ai pas vraiment compris: une colonne, cette colonne, ma ligne, la cellule paiement, le reste.
je pense que tu peux facilement faire cela en VBA.
toutefois je n'ai pas vraiment compris: une colonne, cette colonne, ma ligne, la cellule paiement, le reste.
Merci bcp de ton aide. Je vais t'envoyer de meilleures explications ainsi qu'un exemple de ma feuille afin que ce soit plus compréhensible.
Je fais cela dès que je suis sûr mon pc car actuellement je suis sûr mon iPad.
Merci et ... À dans quelques minutes .
Je fais cela dès que je suis sûr mon pc car actuellement je suis sûr mon iPad.
Merci et ... À dans quelques minutes .
enfin, me voici devant mon pc !

voici donc une partie de mon fichier, ainsi qu'une vue sur la feuille en question.
Donc, dans la colonne "paiement reçu" j'aurai une liste déroulante avec OUI et NON
Dans le cas où le paiement n'est pas encore reçu, je voudrais que la ligne entière se colorise en jaune.
Ainsi que je l'ai dit hier, je sais le faire avec une MFC, mais seulement valable pour le partie sélectionnée or je voudrais que cela continue au fur et à mesure de l'augmentation de nouvelles lignes.
Merci de ton aide
Sub ArchiverBC() 'archiver les Bons de commande dans l'historique clients et incrémenter le numéro de Bon de commande ligne = Sheets("Historique_Commande").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("Historique_Commande").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value 'numero BC Sheets("Historique_Commande").Range("B" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value & " " & Sheets("Bon de Commande").Range("E5").Value 'Nom Sheets("Historique_Commande").Range("C" & ligne).Value = Sheets("Bon de Commande").Range("C6").Value & " " & Sheets("Bon de Commande").Range("C7").Value & " " & Sheets("Bon de Commande").Range("C8").Value 'Adresse Sheets("Historique_Commande").Range("E" & ligne).Value = Sheets("Bon de Commande").Range("C9").Value 'Téléphone Sheets("Historique_Commande").Range("F" & ligne).Value = Sheets("Bon de Commande").Range("J6").Value 'Fournisseur Sheets("Historique_Commande").Range("G" & ligne).Value = Sheets("Bon de Commande").Range("A14").Value 'Désignation 1 Sheets("Historique_Commande").Range("H" & ligne).Value = Sheets("Bon de Commande").Range("A15").Value 'Désignation 2 Sheets("Historique_Commande").Range("I" & ligne).Value = Sheets("Bon de Commande").Range("A16").Value 'Désignation 3 Sheets("Historique_Commande").Range("J" & ligne).Value = Sheets("Bon de Commande").Range("D3").Value 'Date Sheets("Historique_Commande").Range("N" & ligne).Value = Sheets("Bon de Commande").Range("Q28").Value 'Acompte Sheets("Historique_Commande").Range("K" & ligne).Value = Sheets("Bon de Commande").Range("E23").Value 'PV. TTC Sheets("Historique_Commande").Range("D" & ligne).Value = Sheets("Bon de Commande").Range("N7").Value 'Pays Sheets("Historique_Commande").Range("M" & ligne).Value = Sheets("Bon de Commande").Range("H6").Value 'PA. HT 'Sheets("Historique_Commande").Range("L & ligne).Value = range("K"&ligne).value / range("M" & ligne) 'coeficient Sheets("Historique_Commande").Range("P" & ligne).Value = Sheets("Bon de Commande").Range("B23").Value 'date Livraison Sheets("Historique_Commande").Range("R" & ligne).Value = Sheets("Bon de Commande").Range("J9").Value 'Vendeur 'Sheets("Historique_Commande").Range("P" & ligne).Value = Sheets("Bon de Commande").Range("E115").Value 'Pourcentage du Vendeur 'Sheets("Historique_Commande").Range("R" & ligne).Value = Sheets("Bon de Commande").Range("B142").Value 'Remarque Sheets("Historique_Commande").Range("U" & ligne).Value = Sheets("Bon de Commande").Range("B100").Value 'Livraison
voici donc une partie de mon fichier, ainsi qu'une vue sur la feuille en question.
Donc, dans la colonne "paiement reçu" j'aurai une liste déroulante avec OUI et NON
Dans le cas où le paiement n'est pas encore reçu, je voudrais que la ligne entière se colorise en jaune.
Ainsi que je l'ai dit hier, je sais le faire avec une MFC, mais seulement valable pour le partie sélectionnée or je voudrais que cela continue au fur et à mesure de l'augmentation de nouvelles lignes.
Merci de ton aide
peux-tu utiliser les balises de code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
en effet, ce n'est pas la première fois que l'on me demande d'utiliser les balises, je voudrais le faire car la présentation est bien plus compréhensible. Mais lorsque je suis le chemin indiqué, il est inscrit que pour le VBA il faut prendre "Basic", ce que j'ai fait. Merci de me donner une explication qui me permettrait d'afficher mon code avec les numeros de ligne tel que je les vois souvent .
merci
merci
Bonjour,
Pourquoi ne pas faire une boucle sur la colonne concernée comme ceci:
Voilà
Pourquoi ne pas faire une boucle sur la colonne concernée comme ceci:
Option Explicit Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1") ' a adapter NoCol = 11 'lecture de la colonne k a adapter For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) If Var = "OUI" Then ' a adapter Rows(NoLig & ":" & NoLig).Interior.Color = 65535 ' a adapter End If Next Set FL1 = Nothing End Sub
Voilà
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci cs_Le Pivert
j'ai essayé plusieurs fois et je n'obtiens aucun résultat.
Afin de faire l'essai, j'ai ouvert un nouveau classeur; dans ce classeur j'ai mis ton code dans un module 1
et sur ma feuille 1 j'ai écrit "OUI" dans une ligne de la colonne K
et cette ligne de code bloque
For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4)
je ne comprends pas car je n'ai jamais employé SPLIT, ni Usedrange donc je ne sais pas voir d'où vient le blocage.
Merci de ton aide
j'ai essayé plusieurs fois et je n'obtiens aucun résultat.
Afin de faire l'essai, j'ai ouvert un nouveau classeur; dans ce classeur j'ai mis ton code dans un module 1
et sur ma feuille 1 j'ai écrit "OUI" dans une ligne de la colonne K
et cette ligne de code bloque
For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4)
je ne comprends pas car je n'ai jamais employé SPLIT, ni Usedrange donc je ne sais pas voir d'où vient le blocage.
Merci de ton aide
je n'ai rien modifié au code. il est ci dessus (mais au cas où tu ne pourrais le voir car envoyé par cs_LePivert, je le recopie ci dessous :
Option Explicit
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Set FL1 = Worksheets("Feuil1") ' a adapter
NoCol = 11 'lecture de la colonne k a adapter
For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4)
Var = FL1.Cells(NoLig, NoCol)
If Var = "OUI" Then ' a adapter
Rows(NoLig & ":" & NoLig).Interior.Color = 65535 ' a adapter
End If
Next
Set FL1 = Nothing
End Sub
Option Explicit
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Set FL1 = Worksheets("Feuil1") ' a adapter
NoCol = 11 'lecture de la colonne k a adapter
For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4)
Var = FL1.Cells(NoLig, NoCol)
If Var = "OUI" Then ' a adapter
Rows(NoLig & ":" & NoLig).Interior.Color = 65535 ' a adapter
End If
Next
Set FL1 = Nothing
End Sub