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 !

17classeur1.xlsx (17.94 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

14classeur1-v1.xlsm (33.83 Ko)

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

Bonjour

Ça semble fonctionner.

Bravo !

Je t'envoi ma dernière version.

Pas reçue !

Et comme je ne travaille bien que sur du concret...

Bye !

Rechercher des sujets similaires à "colorier bloc couleur"