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

mise en forme conditionnelle avec VBA

4 réponses
Avatar
marc
Bonjour à vous tous
Je cherche à faire une mise en forme conditionnelle sur 4 conditions. J'ai trouvé ce code sur le web que j'ai modifié. Le hic, c'est
que dans mon fichier, j'ai plus d'une plage, alors comment modifier le code Range ("G2:G23), par les cellules sélectionnés?.
Et est-ce que quelqu'un à un meileur code que celui-ci?
Merci de votre aide
Marc
Voici le code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("G2:G23" )) Is Nothing Then
With Target
Select Case Target.Value
Case Is > 12
.Interior.ColorIndex = 3
Case is > 7
.Interior.ColorIndex = 44
Case is > 5
.Interior.ColorIndex = 6

Case is > 0

.Interior.ColorIndex = 33
End Select
End With
End If
End Sub

4 réponses

Avatar
Jacky
Bonsoir,
Par exemple pour
les plages et cellules "g2:g3" et "a1:a10" et "b1" et "b10"
Range("g2:g3,a1:a10,b1,b10")
Quelques modif...(précautions)
'--------------
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("G2:G3,a1:a10,b1,b10")) Is Nothing And
IsNumeric(Target) Then
With Target
Select Case Target.Value
Case Is > 12
.Interior.ColorIndex = 3
Case Is > 7
.Interior.ColorIndex = 44
Case Is > 5
.Interior.ColorIndex = 6
Case Is > 0
.Interior.ColorIndex = 33
End Select
End With
End If
End Sub
'----------
--
Salutations
JJ


"marc" a écrit dans le message de news:

Bonjour à vous tous
Je cherche à faire une mise en forme conditionnelle sur 4 conditions. J'ai
trouvé ce code sur le web que j'ai modifié. Le hic, c'est que dans mon
fichier, j'ai plus d'une plage, alors comment modifier le code Range
("G2:G23), par les cellules sélectionnés?.
Et est-ce que quelqu'un à un meileur code que celui-ci?
Merci de votre aide
Marc
Voici le code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("G2:G23" )) Is Nothing Then
With Target
Select Case Target.Value
Case Is > 12
.Interior.ColorIndex = 3
Case is > 7
.Interior.ColorIndex = 44
Case is > 5
.Interior.ColorIndex = 6

Case is > 0

.Interior.ColorIndex = 33
End Select
End With
End If
End Sub









Avatar
marc
Bonjour à vous deux
Je ne suis pas très bon en vba. Je m'attendais à pouvoir créer un bouton et
de cliquer dessus pour exécuter la macro. Car dans la "vraie vie", j'ai des
dizaines de fichier qui contiennent chacun une dizaine de feuille. Alors je
ne veux pas à avoir à écrire ou nommé des plages, j'aimerais pouvoir
sélectionné manuellement un ensemble de cellules et d'exécuter la macro.
Je vous joins un exemple de document, il y a trois tableaux (que j'ai mis
pour l'exemple sur la même feuille), j'aimerais sélectionner les cellules de
la colonne Total et d'exécuter ma macro.

Merci de votre aide précieuse
Marc
http://cjoint.com/?fjswUFcSS7



"MichDenis" a écrit dans le message de
news:
Bonjour Marc,

Un petit exemple :


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Rg As Range
Set Rg = Intersect(Target, Union(Range("G2:G23"), Range("J5:J10")))
If Not Rg Is Nothing Then
For Each c In Rg
With c
Select Case Target.Value
Case Is > 12
.Interior.ColorIndex = 3
Case Is > 7
.Interior.ColorIndex = 44
Case Is > 5
.Interior.ColorIndex = 6
Case Is > 0
.Interior.ColorIndex = 33
End Select
End With
Next
End If
End Sub





"marc" a écrit dans le message de groupe de discussion :

Bonjour à vous tous
Je cherche à faire une mise en forme conditionnelle sur 4 conditions. J'ai
trouvé ce code sur le web que j'ai modifié. Le hic, c'est
que dans mon fichier, j'ai plus d'une plage, alors comment modifier le
code Range ("G2:G23), par les cellules sélectionnés?.
Et est-ce que quelqu'un à un meileur code que celui-ci?
Merci de votre aide
Marc
Voici le code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("G2:G23" )) Is Nothing Then
With Target
Select Case Target.Value
Case Is > 12
.Interior.ColorIndex = 3
Case is > 7
.Interior.ColorIndex = 44
Case is > 5
.Interior.ColorIndex = 6

Case is > 0

.Interior.ColorIndex = 33
End Select
End With
End If
End Sub


Avatar
JB
Bonjour,

Sub coloriage()
For Each c In Selection
Select Case c
Case Is > 12
c.Interior.ColorIndex = 3
Case Is > 7
c.Interior.ColorIndex = 44
Case Is > 5
c.Interior.ColorIndex = 6
Case Is > 0
c.Interior.ColorIndex = 33
End Select
Next c
End Sub

JB
http://boisgontierjacques.free.fr

On 8 mai, 04:47, "marc" wrote:
Bonjour à vous deux
Je ne suis pas très bon en vba. Je m'attendais à pouvoir créer un b outon et
de cliquer dessus pour exécuter la macro. Car dans la "vraie vie", j'ai des
dizaines de fichier qui contiennent chacun une dizaine de feuille. Alors je
ne veux pas à avoir à écrire ou nommé des plages, j'aimerais pouv oir
sélectionné manuellement un ensemble de cellules et d'exécuter la m acro.
Je vous joins un exemple de document, il y a trois tableaux (que j'ai mis
pour l'exemple sur la même feuille), j'aimerais sélectionner les cell ules de
la colonne Total et d'exécuter ma macro.

Merci de votre aide précieuse
Marchttp://cjoint.com/?fjswUFcSS7

"MichDenis" a écrit dans le message denews:e73j



> Bonjour Marc,

> Un petit exemple :

> Private Sub Worksheet_Change(ByVal Target As Excel.Range)
> Dim Rg As Range
> Set Rg = Intersect(Target, Union(Range("G2:G23"), Range("J5:J10")))
> If Not Rg Is Nothing Then
>    For Each c In Rg
>        With c
>            Select Case Target.Value
>                Case Is > 12
>                    .Interior.ColorIndex = 3
>                Case Is > 7
>                    .Interior.ColorIndex = 44
>                Case Is > 5
>                    .Interior.ColorIndex = 6
>                Case Is > 0
>                    .Interior.ColorIndex = 33
>            End Select
>        End With
>    Next
> End If
> End Sub

> "marc" a écrit dans le message de groupe de discussio n :
>
> Bonjour à vous tous
> Je cherche à faire une mise en forme conditionnelle sur 4 conditions. J'ai
> trouvé ce code sur le web que j'ai modifié. Le hic, c'est
> que dans mon fichier, j'ai plus d'une plage, alors comment modifier le
> code Range ("G2:G23), par les cellules sélectionnés?.
> Et est-ce que quelqu'un à un meileur code que celui-ci?
> Merci de votre aide
> Marc
> Voici le code:

> Private Sub Worksheet_Change(ByVal Target As Excel.Range)
>  If Not Intersect(Target, Range("G2:G23" )) Is Nothing Then
>    With Target
>      Select Case Target.Value
>        Case Is > 12
>          .Interior.ColorIndex = 3
>        Case is > 7
>          .Interior.ColorIndex = 44
>        Case is > 5
>          .Interior.ColorIndex = 6

>        Case is > 0

>          .Interior.ColorIndex = 33
>      End Select
>    End With
>  End If
> End Sub- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
marc
Bonjour JB
C'Est exactement ce que je voulais
Merci
Mar
"JB" a écrit dans le message de news:
Bonjour,

Sub coloriage()
For Each c In Selection
Select Case c
Case Is > 12
c.Interior.ColorIndex = 3
Case Is > 7
c.Interior.ColorIndex = 44
Case Is > 5
c.Interior.ColorIndex = 6
Case Is > 0
c.Interior.ColorIndex = 33
End Select
Next c
End Sub

JB
http://boisgontierjacques.free.fr

On 8 mai, 04:47, "marc" wrote:
Bonjour à vous deux
Je ne suis pas très bon en vba. Je m'attendais à pouvoir créer un bouton et
de cliquer dessus pour exécuter la macro. Car dans la "vraie vie", j'ai des
dizaines de fichier qui contiennent chacun une dizaine de feuille. Alors je
ne veux pas à avoir à écrire ou nommé des plages, j'aimerais pouvoir
sélectionné manuellement un ensemble de cellules et d'exécuter la macro.
Je vous joins un exemple de document, il y a trois tableaux (que j'ai mis
pour l'exemple sur la même feuille), j'aimerais sélectionner les cellules de
la colonne Total et d'exécuter ma macro.

Merci de votre aide précieuse
Marchttp://cjoint.com/?fjswUFcSS7

"MichDenis" a écrit dans le message denews:



> Bonjour Marc,

> Un petit exemple :

> Private Sub Worksheet_Change(ByVal Target As Excel.Range)
> Dim Rg As Range
> Set Rg = Intersect(Target, Union(Range("G2:G23"), Range("J5:J10")))
> If Not Rg Is Nothing Then
> For Each c In Rg
> With c
> Select Case Target.Value
> Case Is > 12
> .Interior.ColorIndex = 3
> Case Is > 7
> .Interior.ColorIndex = 44
> Case Is > 5
> .Interior.ColorIndex = 6
> Case Is > 0
> .Interior.ColorIndex = 33
> End Select
> End With
> Next
> End If
> End Sub

> "marc" a écrit dans le message de groupe de discussion :
>
> Bonjour à vous tous
> Je cherche à faire une mise en forme conditionnelle sur 4 conditions. J'ai
> trouvé ce code sur le web que j'ai modifié. Le hic, c'est
> que dans mon fichier, j'ai plus d'une plage, alors comment modifier le
> code Range ("G2:G23), par les cellules sélectionnés?.
> Et est-ce que quelqu'un à un meileur code que celui-ci?
> Merci de votre aide
> Marc
> Voici le code:

> Private Sub Worksheet_Change(ByVal Target As Excel.Range)
> If Not Intersect(Target, Range("G2:G23" )) Is Nothing Then
> With Target
> Select Case Target.Value
> Case Is > 12
> .Interior.ColorIndex = 3
> Case is > 7
> .Interior.ColorIndex = 44
> Case is > 5
> .Interior.ColorIndex = 6

> Case is > 0

> .Interior.ColorIndex = 33
> End Select
> End With
> End If
> End Sub- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -