mise en forme conditionnelle avec VBA

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #19288701
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"
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









marc
Le #19289851
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" 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"
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


JB
Le #19290101
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"
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"


> 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" >
> 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 -


marc
Le #19292111
Bonjour JB
C'Est exactement ce que je voulais
Merci
Mar
"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"
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"


> 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" >
> 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 -


Publicité
Poster une réponse
Anonyme