Vba
Résolu
-
-
-
bonjour a tous,
je cherche de l'aide concernant une formule a mettre en place sur un fichier excel. je souhaite mettre une couleur dans une cellule selon certaines conditiond qui sont au nombre de 4 et qui du coup m'empeche d'utiliser la mise en forme conditonelle d'excel. il faut par consequent que je fasse une programmation vbs et la cest le drame ! je ne sais absolument pas leifaire. il faudrait que pour les cellules suivantes f10 a f14 dselon le chiffre a linterieur une couleur soit automatiquement mise voila comment cela doit se decliner inferieur a 1,02 alors rouge entre 1,021 et 1,12 alord vert entre 1,121 et 1,2 alor jaune et au dela de1,21 alors bleu. pouvez vous m ' aider s'il vous plait !
je cherche de l'aide concernant une formule a mettre en place sur un fichier excel. je souhaite mettre une couleur dans une cellule selon certaines conditiond qui sont au nombre de 4 et qui du coup m'empeche d'utiliser la mise en forme conditonelle d'excel. il faut par consequent que je fasse une programmation vbs et la cest le drame ! je ne sais absolument pas leifaire. il faudrait que pour les cellules suivantes f10 a f14 dselon le chiffre a linterieur une couleur soit automatiquement mise voila comment cela doit se decliner inferieur a 1,02 alors rouge entre 1,021 et 1,12 alord vert entre 1,121 et 1,2 alor jaune et au dela de1,21 alors bleu. pouvez vous m ' aider s'il vous plait !
7 réponses
Bonsoir
en attendant B=VBA qui va surement venir, vous pouvez toujours:
Soit :
utiliser excel à partir de 2007 qui n'a pas de limitation de MFC ;-)
Soit :
(si vous admettez vide =équivalent à <1,02)
passer vos cellules F10 à F14 en rouge selon votre 1° condition
appliquez les autres, dans l'ordre, avec ces formules dans l'ordre:
Vert
=ET(F10>1,02;F10<=1,12)
en jaune
=F10<=1,2
en bleu
=F10>1,2
crdlmnt
en attendant B=VBA qui va surement venir, vous pouvez toujours:
Soit :
utiliser excel à partir de 2007 qui n'a pas de limitation de MFC ;-)
Soit :
(si vous admettez vide =équivalent à <1,02)
passer vos cellules F10 à F14 en rouge selon votre 1° condition
appliquez les autres, dans l'ordre, avec ces formules dans l'ordre:
Vert
=ET(F10>1,02;F10<=1,12)
en jaune
=F10<=1,2
en bleu
=F10>1,2
crdlmnt
ah bon je ne savais pas pour la mise en forme conditionnelle maos admettons que je le saisi sur excel 2007 si celui ci est consulte par la suite sur excel moins recent est ce que cela fonctionnera? et enfin comment le saisir car quand jai essaye toute la colonne est ressori rouge alors que ca ne remplissait pas les conditions de cette couleur... je suis desolee je suis vraiment debutante!
Salut,
Quelle version Excel as tu
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Quelle version Excel as tu
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
bien sur on peut passer en VBA, mais lorsqu'on peu faire simple pourquoi s'en priver
Pour ma part j'aurai mis ma plage en rouge ce qui élimine une couleur et j'aurai traité les 3 couleurs suivantes, mettre la plage F10:F17 en surbrillance
Mise en forme conditionnelle
pour la couleur verte
=A10>1,02
Pour la couleur jaune
=A10>1,12
pour la couleur bleu
=F10>1,2
Maintenant si tu tiens au VBA, je mange vite fait et je t'écrit un code tout simple
bien sur on peut passer en VBA, mais lorsqu'on peu faire simple pourquoi s'en priver
Pour ma part j'aurai mis ma plage en rouge ce qui élimine une couleur et j'aurai traité les 3 couleurs suivantes, mettre la plage F10:F17 en surbrillance
Mise en forme conditionnelle
pour la couleur verte
=A10>1,02
Pour la couleur jaune
=A10>1,12
pour la couleur bleu
=F10>1,2
Maintenant si tu tiens au VBA, je mange vite fait et je t'écrit un code tout simple
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Mourir de faim non ce n'est pas mon genre, surcharge de travail non plus j'ai un bon patron qui se nomme retraite.
bon passons aux choses sérieuses, pour ton fichier mis à notre disposition, commence par supprimer les mises en forme conditionnelle, puis clic droit sur l'onglet de ta feuille/Visualiser le code
colle ce code dans la partie blanche
Private Sub Worksheet_Calculate()
Dim Cellule As Range
Application.ScreenUpdating = False
For Each Cellule In Range("F10:F17")
If Cellule.Value <= 1.02 Then Cellule.Interior.ColorIndex = 3 'rouge
If Cellule.Value > 1.02 Then Cellule.Interior.ColorIndex = 4 'vert
If Cellule.Value > 1.12 Then Cellule.Interior.ColorIndex = 6 'jaune
If Cellule.Value > 1.21 Then Cellule.Interior.ColorIndex = 23 'bleu
Next
Application.ScreenUpdating = True
End Sub
Il est possible d'améliorer le code pour affecter des couleurs de ton choix en faisant référence à des cellules que tu coloriserais par exemple
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Mourir de faim non ce n'est pas mon genre, surcharge de travail non plus j'ai un bon patron qui se nomme retraite.
bon passons aux choses sérieuses, pour ton fichier mis à notre disposition, commence par supprimer les mises en forme conditionnelle, puis clic droit sur l'onglet de ta feuille/Visualiser le code
colle ce code dans la partie blanche
Private Sub Worksheet_Calculate()
Dim Cellule As Range
Application.ScreenUpdating = False
For Each Cellule In Range("F10:F17")
If Cellule.Value <= 1.02 Then Cellule.Interior.ColorIndex = 3 'rouge
If Cellule.Value > 1.02 Then Cellule.Interior.ColorIndex = 4 'vert
If Cellule.Value > 1.12 Then Cellule.Interior.ColorIndex = 6 'jaune
If Cellule.Value > 1.21 Then Cellule.Interior.ColorIndex = 23 'bleu
Next
Application.ScreenUpdating = True
End Sub
Il est possible d'améliorer le code pour affecter des couleurs de ton choix en faisant référence à des cellules que tu coloriserais par exemple
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Salut l'ami,
Change les valeurs en C et I puisque les valeurs en F sont le résultat de cette division
https://www.cjoint.com/?CDlhYzMm3eT
Change les valeurs en C et I puisque les valeurs en F sont le résultat de cette division
https://www.cjoint.com/?CDlhYzMm3eT
Re,
Plusieurs possibilités, on pourrait tester la cellule en F en fin de procédure ou directement dans chaque ligne avec une conditionnelle if
dans l'exemple je préfère tester les cellule en C et I en rajoutant une ligne en fin de code
Private Sub Worksheet_Calculate()
Dim Cellule As Range
Application.ScreenUpdating = False
For Each Cellule In Range("F10:F17")
If Cellule.Offset(1, -3) = "" Then Cellule.Interior.ColorIndex = 15 'xlNone 'vide
If Cellule.Value <= 1.02 Then Cellule.Interior.ColorIndex = 3 'rouge
If Cellule.Value > 1.02 Then Cellule.Interior.ColorIndex = 4 'vert
If Cellule.Value > 1.12 Then Cellule.Interior.ColorIndex = 6 'jaune
If Cellule.Value > 1.21 Then Cellule.Interior.ColorIndex = 23 'bleu
If Cellule.Offset(0, -3) = "" Or Cellule.Offset(0, 3) = "" Then Cellule.Interior.ColorIndex = xlNone 'vide
Next
Application.ScreenUpdating = True
End Sub
Plusieurs possibilités, on pourrait tester la cellule en F en fin de procédure ou directement dans chaque ligne avec une conditionnelle if
dans l'exemple je préfère tester les cellule en C et I en rajoutant une ligne en fin de code
Private Sub Worksheet_Calculate()
Dim Cellule As Range
Application.ScreenUpdating = False
For Each Cellule In Range("F10:F17")
If Cellule.Offset(1, -3) = "" Then Cellule.Interior.ColorIndex = 15 'xlNone 'vide
If Cellule.Value <= 1.02 Then Cellule.Interior.ColorIndex = 3 'rouge
If Cellule.Value > 1.02 Then Cellule.Interior.ColorIndex = 4 'vert
If Cellule.Value > 1.12 Then Cellule.Interior.ColorIndex = 6 'jaune
If Cellule.Value > 1.21 Then Cellule.Interior.ColorIndex = 23 'bleu
If Cellule.Offset(0, -3) = "" Or Cellule.Offset(0, 3) = "" Then Cellule.Interior.ColorIndex = xlNone 'vide
Next
Application.ScreenUpdating = True
End Sub