Colorer une plage de cellule en fction de la valeur d'une autre
Résolu
Manoouune
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Manoouune -
Manoouune -
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 :/
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 :/
A voir également:
- Colorer une plage de cellule en fction de la valeur d'une autre
- Comment colorer une cellule excel avec une formule si - Guide
- Image de manchots sur une image de plage. - Forum Graphisme
- Aller à la ligne dans une cellule excel - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
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 =)