Colorier un bloc de couleur
Bonjour,
Je cherche un moyen de faire une boucle pour colorer des blocs de cellule en fonction d'un mot écrit dans la colonne AH.
j'ai un onglet avec mes données initiales et ce que je cherche à avoir comme résultat dans un autre onglet.
La couleur est écrit sur la 2e ligne du bloc, mais elle doit apparaître jusqu'à la dernière ligne du bloc.
Des idées ?
Merci !
Salut GMB,
Ça fonctionne très bien. Je vais tester avec mon fichier complet pour être certain!
Par contre, pourrais-tu m'expliquer ce que Choose fait ? Je ne l'ai jamais utilisé.
Aussi, comment modifier la macro pour qu'elle boucle dans 6 onglets soit:
"PEM"
"SPOT"
"TIME SAVER"
"SOUDURE"
"FINITION"
"ASSEMBLAGE"
"PLIAGE"
Merci !
Bonjour
pourrais-tu m'expliquer ce que Choose fait ?
Je me sers de cette fonction pour faire correspondre 2 ou plusieurs variables à un même moment.
Ici, par exemple lorsqu je boucle sur les cellules qui contiennent les mots « Vert », « Rouge », « Bleu » ou « Noir », je fais une autre boucle 4 fois (valeur que prend k)
Et lorsque ma variable txtcouleur aura la valeur du mot inscrit dans la cellule, j’aurai ma correspondance.
Exemple : la cellule contient le mot « Vert », soit « VERT » en majuscule
J’ai défini
ncouleur = Choose(k, vert, rouge, bleu, noir)
txtCouleur = Choose(k, "VERT", "ROUGE", "BLEU", "NOIR")
tcouleur = Choose(k, jaune, bleu2, jaune, blanc)
VERT est en 1ère position donc quand k = 1 ma condition sur txtcouleur est remplie
La couleur du fond à appliquer sera celle de la variable ncouleur pour la même valeur de k, c’est-à-dire la variable ''vert'' .Cette variable est un numéro de couleur RGB défini par ailleurs
La couleur du texte à appliquer sera celle de la variable tcouleur pour la même valeur de k, c’est-à-dire la variable ''jaune''.
En fait, l’aide en ligne (Touche F1 quand tu es sur Choose t’expliquera ça mieux que moi.
OK ?
Pour ce qui est de ta nouvelle demande, il me faudrait un fichier avec tes onglets
Bye !
Salut,
Voici ce que j'ai fait pour boucler les onglets.
Ça semble fonctionner.
Sub couleur_finale()
Dim vert&, rouge&, bleu&, bleu2&, blanc&, noir&, jaune&, ncouleur, txtCouleur, tcouleur
Dim ln&, k&, derln&
Dim Arr_Sheets(6) As String
Dim Ob_Sheet As Worksheet
vert = RGB(146, 208, 80)
rouge = RGB(255, 0, 0)
bleu = RGB(0, 176, 240)
bleu2 = RGB(51, 51, 255)
noir = RGB(0, 0, 0)
jaune = RGB(255, 255, 0)
blanc = RGB(255, 255, 255)
Arr_Sheets(0) = "PEM"
Arr_Sheets(1) = "SPOT"
Arr_Sheets(2) = "TIME SAVER"
Arr_Sheets(3) = "SOUDURE"
Arr_Sheets(4) = "FINITION"
Arr_Sheets(5) = "ASSEMBLAGE"
Arr_Sheets(6) = "PLIAGE"
For s = 0 To 6
Val_sh = Arr_Sheets(s)
Set Ob_Sheet = ThisWorkbook.Worksheets(Val_sh)
'Sheets("initial").Cells.Copy Range("A1")
For ln = 2 To Ob_Sheet.Range("AP" & Rows.Count).End(xlUp).Row
If Range("AP" & ln) <> "" Then
For k = 1 To 4
ncouleur = Choose(k, vert, rouge, bleu, noir)
txtCouleur = Choose(k, "VERT", "ROUGE", "BLEU", "NOIR")
tcouleur = Choose(k, jaune, bleu2, jaune, blanc)
If UCase(Ob_Sheet.Range("AP" & ln)) = txtCouleur Then
derln = Ob_Sheet.Range("D" & ln - 1).End(xlDown).Row
Ob_Sheet.Range("D" & ln & ":AA" & derln).Interior.Color = ncouleur
Ob_Sheet.Range("D" & ln & ":AA" & derln).Font.Color = tcouleur
End If
Next k
End If
Next ln
Next s
End Sub