Colorer une plage de cellule en fction de la valeur d'une autre

Résolu/Fermé
Manoouune Messages postés 6 Date d'inscription mardi 10 février 2015 Statut Membre Dernière intervention 3 mai 2016 - Modifié par Manoouune le 10/02/2015 à 20:47
 Manoouune - 16 févr. 2015 à 16:56
Bonjour,

Afin de réaliser un fichier de gestion de production, je souhaiterais colorer x cellules si B1=x puis à suivre, y cellules si B2=y. Prenons un exemple numérique pour mieux comprendre:

B1 correspond à la production désirée pour la semaine 1 -> B1= 4
B2 correspond à la production désirée pour la semaine 2 -> B2= 3


Sur la ligne 6, je voudrais représenter cette production de 4 pièces pour la semaine 1 en mettant en couleur 4 cellules de la ligne 6 (rouge par exemple), puis la production de 3 pièces pour la semaine 2 en mettant en couleur 3 cellules de cette même ligne (bleu par exemple) en commençant à la prochaine cellule non colorée de manière à que les couleurs rouge et bleu se suivent.
Donc on aurait B6:E6 en rouge (4 cellules pour représenter les 4 pièces) et F6:H6 en bleu.

En faisant une Mise en Forme Conditionnelle sur la plage de cellule $6:$6 et conne condition "=colonnes($B$6:Z$6)<=$B$1+1", ma couleur rouge se met sur 4 cellules comme voulu. Cependant, dans la fonction "colonnes", je suis obligée de fixer la cellule B6 ($B$6), sinon ça ne marche pas, ce qui me bloque pour la seconde couleur. Elle ne sait pas qu'elle doit se mettre sur les 3 cellules suivantes de la ligne 6. Je ne trouve pas de solution en MFC et ne connais pas suffisamment VBA pour réussir à faire un code. Mais s'il faut passer par VBA pour y parvenir, ça m'ira.

J'espère avoir été claire, et vous remercie de m'aider à bucher :/

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 11/02/2015 à 08:49
Bonjour,

un exemple sur 4 semaines: https://www.cjoint.com/c/EBli7QyBsla

A+
0
Manoouune Messages postés 6 Date d'inscription mardi 10 février 2015 Statut Membre Dernière intervention 3 mai 2016
11 févr. 2015 à 18:41
Merci beaucoup ça marche super bien ! C'est exactement ce que je cherchais. Encore merci et bonne soirée =)
0
Bonjour f894009,
En voulant reprendre ton code VBA et le faire fonctionner sur un autre classeur excel, ça me marque "Erreur d'exécution '1004': La méthode 'Range' de l'objet '_Woorksheet' a échoué. Pourtant je fais vraiment un copier coller de ton code (feuille + module) et je change juste les valeurs de ligne. Je ne comprend pas pourquoi ça ne marche pas. De plus, dans le code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("TPS")) Is Nothing Then
Rows("13:13").Interior.Pattern = xlNone
If Range("C1") <> "" And Range("C1") <> 0 Then
CBr = Range("C1")
Cells(13, 1).Resize(, CBr).Interior.Color = vbRed
End If
If Range("C6") <> "" And Range("C6") <> 0 Then
CBl = Range("C6")
Cells(13, 1 + CBr).Resize(, CBl).Interior.Color = vbBlue
End If

End If
End Sub

Je ne saisie pas le sens de la ligne "If Not Application.Intersect(Target, Range("TPS")) Is Nothing Then".

Merci de m'éclairer, encore une fois =)
0