Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise en forme conditionelle : comment augmenter le nombre de conditions

9 réponses
Avatar
bhole
Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions, comment
faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment s'y
prendre ?

Merci d'avance

9 réponses

Avatar
Dédé
Encore un exemple ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case [C5]
Case Is = ""
Exit Sub
Case Is = 5
[C5].Font.ColorIndex = 1
[C5].Interior.ColorIndex = 3
Case Is > 5
[C5].Font.ColorIndex = 1
[C5].Interior.ColorIndex = 4
Case Is < 5
[C5].Font.ColorIndex = 1
[C5].Interior.ColorIndex = 5
End Select
[D5] = [C5].Interior.ColorIndex
End Sub

Salutations
Dédé


--
Pour répondre, enlever le NOSPAM
"Dédé" a écrit dans le message de
news:
re ...

Un autre exemple avec select case pour la mise en forme de la cellule C5
(ceci n'est qu'un exemple ...)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Range("C5")
Case Is = "test"
[C5].Font.ColorIndex = 5
[C5].Interior.ColorIndex = 0
Case Is = "Toto"
[C5].Interior.ColorIndex = 2
Case Is = "Tutu"
[C5].Interior.ColorIndex = 1
Case Is = "Titi"
[C5].Interior.ColorIndex = 3
Case Is = "Tata"
[C5].Interior.ColorIndex = 4
End Select
End Sub

Est-ce que cela te convient ?

Salutations
Dédé

--
Pour répondre, enlever le NOSPAM
"Dédé" a écrit dans le message de
news:
Salut Bob !

Ben oui, si tu doit avoir plus de trois conditions, tu es obligé de
passer


par VBA ...

Si tu veux un exemple, un voici un ...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim couleur As Byte
On Error Resume Next
If Intersect(Target, Range("heures")) Is Nothing Then Exit Sub
couleur = 1
If InStr(1, Target.Value, "bis", vbTextCompare) > 0 Then
couleur = 3
ElseIf InStr(1, Target.Value, "Messe", vbTextCompare) > 0 Then
couleur = 1
ElseIf InStr(1, Target.Value, "Ferien", vbTextCompare) > 0 Then
couleur = 4
ElseIf InStr(1, Target.Value, "E-mail", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Ausbildung", vbTextCompare) > 0 Then
couleur = 7
ElseIf InStr(1, Target.Value, "Abwesend", vbTextCompare) > 0 Then
couleur = 13
ElseIf InStr(1, Target.Value, "Ab", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Militär", vbTextCompare) > 0 Then
couleur = 50
ElseIf InStr(1, Target.Value, "Schule", vbTextCompare) > 0 Then
couleur = 33
ElseIf InStr(1, Target.Value, "Sitzung", vbTextCompare) > 0 Then
couleur = 53
End If
Target.Font.ColorIndex = couleur
End Sub

Salutations
Dédé

--
Pour répondre, enlever le NOSPAM
"Bob" a écrit dans le message de
news:
Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions, comment
faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment s'y
prendre ?

Merci d'avance










Avatar
sabatier
vielen Danken, mein Obersturmführer...
jps

"Dédé" wrote:

Salut Bob !

Ben oui, si tu doit avoir plus de trois conditions, tu es obligé de passer
par VBA ...

Si tu veux un exemple, un voici un ...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim couleur As Byte
On Error Resume Next
If Intersect(Target, Range("heures")) Is Nothing Then Exit Sub
couleur = 1
If InStr(1, Target.Value, "bis", vbTextCompare) > 0 Then
couleur = 3
ElseIf InStr(1, Target.Value, "Messe", vbTextCompare) > 0 Then
couleur = 1
ElseIf InStr(1, Target.Value, "Ferien", vbTextCompare) > 0 Then
couleur = 4
ElseIf InStr(1, Target.Value, "E-mail", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Ausbildung", vbTextCompare) > 0 Then
couleur = 7
ElseIf InStr(1, Target.Value, "Abwesend", vbTextCompare) > 0 Then
couleur = 13
ElseIf InStr(1, Target.Value, "Ab", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Militär", vbTextCompare) > 0 Then
couleur = 50
ElseIf InStr(1, Target.Value, "Schule", vbTextCompare) > 0 Then
couleur = 33
ElseIf InStr(1, Target.Value, "Sitzung", vbTextCompare) > 0 Then
couleur = 53
End If
Target.Font.ColorIndex = couleur
End Sub

Salutations
Dédé

--
Pour répondre, enlever le NOSPAM
"Bob" a écrit dans le message de
news:
Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions, comment
faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment s'y
prendre ?

Merci d'avance




Avatar
Dédé
Mouais ... ça ira pour cette foi ... ;-))

En fait, j'ai fais c'est un classeur que j'avais fais pour mon chef ;-) qui
ne connais pas très bien le VBA alors c'est pour ça que c'est en allemand
mais, j'ai HORREUR de cette langue qui de plus, chez nous est déformé au
profit du Suisse-Allemand qui, à mon goût n'est plus une langue mais plutôt
une déformation de la gorge (incurable !) Pffff pénible des fois ;-)

M'enfin bon, avec le temps, on s'y fait ;-))

Bonnes satutations
Dédé

--
Pour répondre, enlever le NOSPAM
"sabatier" a écrit dans le message de
news:
vielen Danken, mein Obersturmführer...
jps

"Dédé" wrote:

Salut Bob !

Ben oui, si tu doit avoir plus de trois conditions, tu es obligé de
passer


par VBA ...

Si tu veux un exemple, un voici un ...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim couleur As Byte
On Error Resume Next
If Intersect(Target, Range("heures")) Is Nothing Then Exit Sub
couleur = 1
If InStr(1, Target.Value, "bis", vbTextCompare) > 0 Then
couleur = 3
ElseIf InStr(1, Target.Value, "Messe", vbTextCompare) > 0 Then
couleur = 1
ElseIf InStr(1, Target.Value, "Ferien", vbTextCompare) > 0 Then
couleur = 4
ElseIf InStr(1, Target.Value, "E-mail", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Ausbildung", vbTextCompare) > 0 Then
couleur = 7
ElseIf InStr(1, Target.Value, "Abwesend", vbTextCompare) > 0 Then
couleur = 13
ElseIf InStr(1, Target.Value, "Ab", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Militär", vbTextCompare) > 0 Then
couleur = 50
ElseIf InStr(1, Target.Value, "Schule", vbTextCompare) > 0 Then
couleur = 33
ElseIf InStr(1, Target.Value, "Sitzung", vbTextCompare) > 0 Then
couleur = 53
End If
Target.Font.ColorIndex = couleur
End Sub

Salutations
Dédé

--
Pour répondre, enlever le NOSPAM
"Bob" a écrit dans le message de
news:
Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions, comment
faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment s'y
prendre ?

Merci d'avance







Avatar
sabatier
pauvre dédé...
tu pich sehr malheureux alors!!
jps

"Dédé" wrote:

Mouais ... ça ira pour cette foi ... ;-))

En fait, j'ai fais c'est un classeur que j'avais fais pour mon chef ;-) qui
ne connais pas très bien le VBA alors c'est pour ça que c'est en allemand
mais, j'ai HORREUR de cette langue qui de plus, chez nous est déformé au
profit du Suisse-Allemand qui, à mon goût n'est plus une langue mais plutôt
une déformation de la gorge (incurable !) Pffff pénible des fois ;-)

M'enfin bon, avec le temps, on s'y fait ;-))

Bonnes satutations
Dédé

--
Pour répondre, enlever le NOSPAM
"sabatier" a écrit dans le message de
news:
vielen Danken, mein Obersturmführer...
jps

"Dédé" wrote:

Salut Bob !

Ben oui, si tu doit avoir plus de trois conditions, tu es obligé de
passer


par VBA ...

Si tu veux un exemple, un voici un ...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim couleur As Byte
On Error Resume Next
If Intersect(Target, Range("heures")) Is Nothing Then Exit Sub
couleur = 1
If InStr(1, Target.Value, "bis", vbTextCompare) > 0 Then
couleur = 3
ElseIf InStr(1, Target.Value, "Messe", vbTextCompare) > 0 Then
couleur = 1
ElseIf InStr(1, Target.Value, "Ferien", vbTextCompare) > 0 Then
couleur = 4
ElseIf InStr(1, Target.Value, "E-mail", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Ausbildung", vbTextCompare) > 0 Then
couleur = 7
ElseIf InStr(1, Target.Value, "Abwesend", vbTextCompare) > 0 Then
couleur = 13
ElseIf InStr(1, Target.Value, "Ab", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Militär", vbTextCompare) > 0 Then
couleur = 50
ElseIf InStr(1, Target.Value, "Schule", vbTextCompare) > 0 Then
couleur = 33
ElseIf InStr(1, Target.Value, "Sitzung", vbTextCompare) > 0 Then
couleur = 53
End If
Target.Font.ColorIndex = couleur
End Sub

Salutations
Dédé

--
Pour répondre, enlever le NOSPAM
"Bob" a écrit dans le message de
news:
Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions, comment
faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment s'y
prendre ?

Merci d'avance









Avatar
Dédé
;-|

--
Pour répondre, enlever le NOSPAM
"sabatier" a écrit dans le message de
news:
pauvre dédé...
tu pich sehr malheureux alors!!
jps

"Dédé" wrote:

Mouais ... ça ira pour cette foi ... ;-))

En fait, j'ai fais c'est un classeur que j'avais fais pour mon chef ;-)
qui


ne connais pas très bien le VBA alors c'est pour ça que c'est en
allemand


mais, j'ai HORREUR de cette langue qui de plus, chez nous est déformé au
profit du Suisse-Allemand qui, à mon goût n'est plus une langue mais
plutôt


une déformation de la gorge (incurable !) Pffff pénible des fois ;-)

M'enfin bon, avec le temps, on s'y fait ;-))

Bonnes satutations
Dédé

--
Pour répondre, enlever le NOSPAM
"sabatier" a écrit dans le message de
news:
vielen Danken, mein Obersturmführer...
jps

"Dédé" wrote:

Salut Bob !

Ben oui, si tu doit avoir plus de trois conditions, tu es obligé de
passer


par VBA ...

Si tu veux un exemple, un voici un ...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim couleur As Byte
On Error Resume Next
If Intersect(Target, Range("heures")) Is Nothing Then Exit Sub
couleur = 1
If InStr(1, Target.Value, "bis", vbTextCompare) > 0 Then
couleur = 3
ElseIf InStr(1, Target.Value, "Messe", vbTextCompare) > 0 Then
couleur = 1
ElseIf InStr(1, Target.Value, "Ferien", vbTextCompare) > 0 Then
couleur = 4
ElseIf InStr(1, Target.Value, "E-mail", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Ausbildung", vbTextCompare) > 0 Then
couleur = 7
ElseIf InStr(1, Target.Value, "Abwesend", vbTextCompare) > 0 Then
couleur = 13
ElseIf InStr(1, Target.Value, "Ab", vbTextCompare) > 0 Then
couleur = 5
ElseIf InStr(1, Target.Value, "Militär", vbTextCompare) > 0 Then
couleur = 50
ElseIf InStr(1, Target.Value, "Schule", vbTextCompare) > 0 Then
couleur = 33
ElseIf InStr(1, Target.Value, "Sitzung", vbTextCompare) > 0 Then
couleur = 53
End If
Target.Font.ColorIndex = couleur
End Sub

Salutations
Dédé

--
Pour répondre, enlever le NOSPAM
"Bob" a écrit dans le message de
news:
Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions,
comment





faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment
s'y





prendre ?

Merci d'avance












Avatar
Angel Dust
"Bob" a écrit dans le message news:

Bonjour

Je cherche mettre en forme les lignes d'un tableau en utilisant 6
conditions différentes.
La mise en forme conditionnelle se limitant à 3 conditions, comment
faire ?
Faut-il passer par VB ?
Si oui, quelqu'un a-t'il l'adresse d'un site expliquant comment s'y
prendre ?

Merci d'avance


Bonjour,

Vous pouvez faire des mises en forme conditionnelles en utilisant plus de 3

conditions avec :

dans la liste Condition1 "La formule est" et par exemple

=ET(A1>10;B1;C1>12;D1=2) dans le contrôle correspondant.

Steph

Avatar
Angel Dust
Ca c'est 4 tests logiques mais...une seule condition pour le format !
AV>


4 tests logiques que je n'aurais pu écrire en 4 conditions.

Pouvez-vous m'expliquer, svp, la différence entre un test logique et la
condition dans le cas de l'utilisation de la mise en forme conditionnelle ?

Merci
Steph

Avatar
AV
Pouvez-vous m'expliquer, svp, la différence entre un test logique et la
condition dans le cas de l'utilisation de la mise en forme conditionnelle ?


Je pense qu'il y a confusion entre le(s) test(s) logique(s) contenu(s) dans une
formule et le résultat de la formule....
Dans la MFC, une condition (sous forme de formule), pour être correctement
interprétée doit renvoyer VRAI ou FAUX (qui seront interprétés comme 1 ou 0) ou
bien drectement 1 ou 0 (ce qui n'est pas forcément la même chose...)
Le fait que la formule (1 condition) renferme 1 ou x tests logiques n'a pas
d'importance
Dans ton exemple : =ET(A1>10;B1;C1>12;D1=2), il ne s'agit pas de 4 conditions
mais d'une seule, celle évalué par le résultat de la formule
En d'autres termes, la MFC accepte 3 conditions (formules) différentes et peu
importe le contenu (des formules) dans la mesure ou il est valide

Suis-je plus clair ?

AV

Avatar
Angel Dust
Suis-je plus clair ?

AV


Oui, merci pour vos explications.

Stéphane