OVH Cloud OVH Cloud

VBA MEF conditionnelle

8 réponses
Avatar
Gabriel
Bonjour,

Voici une macro événementielle qui colore une cellule d'une teinte
particulière quand un texte spécifique est écrit :

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour qu'il ne colore plus
la cellule mais la ligne (de A:F par exemple) où on a tapé le mot.
J'aurai bien demandé au créateur de la macro, mais je ne retrouve pas le
mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel

8 réponses

Avatar
Pascal Engelmajer
salut,
DD.EntireRow.Interior.ColorIndex = 3
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Gabriel" a écrit dans le message de news:
ejUF4S#
Bonjour,

Voici une macro événementielle qui colore une cellule d'une teinte

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour qu'il ne colore
plus

la cellule mais la ligne (de A:F par exemple) où on a tapé le mot.
J'aurai bien demandé au créateur de la macro, mais je ne retrouve pas le
mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel






Avatar
John Fuss
remplace DD par DD.entirerow

voili voilou

John

"Gabriel" a écrit dans le message de
news:ejUF4S%
Bonjour,

Voici une macro événementielle qui colore une cellule d'une teinte

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour qu'il ne colore
plus

la cellule mais la ligne (de A:F par exemple) où on a tapé le mot.
J'aurai bien demandé au créateur de la macro, mais je ne retrouve pas le
mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel






Avatar
Gabriel
Merci, ça va déjà, mais :
on peut pas faire ça sur une plage de la ligne genre (A à F) ?

+
Gabriel


"Pascal Engelmajer" a écrit dans le
message de news: #7Ut6c#
salut,
DD.EntireRow.Interior.ColorIndex = 3
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Gabriel" a écrit dans le message de news:
ejUF4S#
Bonjour,

Voici une macro événementielle qui colore une cellule d'une teinte

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour qu'il ne colore
plus

la cellule mais la ligne (de A:F par exemple) où on a tapé le mot.
J'aurai bien demandé au créateur de la macro, mais je ne retrouve pas le
mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel










Avatar
AV
Précise sur quelle plage tu veux utiliser et quelle plage est à colorer si...

AV
Avatar
Pascal Engelmajer
Salut,
Dim lig As Integer
lig = dd.Row
Range(Range("A" & lig), Range("F" & lig)).Interior.ColorIndex = 5
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Pascal Engelmajer" a écrit dans le
message de news: #7Ut6c#
salut,
DD.EntireRow.Interior.ColorIndex = 3
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Gabriel" a écrit dans le message de news:
ejUF4S#
Bonjour,

Voici une macro événementielle qui colore une cellule d'une teinte

Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour qu'il ne colore
plus

la cellule mais la ligne (de A:F par exemple) où on a tapé le mot.
J'aurai bien demandé au créateur de la macro, mais je ne retrouve pas le
mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel










Avatar
Ellimac
Bonjour,

Pour chaque cas :
Range(DD.Offset(0, -1), DD.Offset(0,
4)).Interior.ColorIndex = 5

Camille

-----Message d'origine-----
Bonjour,

Voici une macro événementielle qui colore une cellule
d'une teinte


Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour
qu'il ne colore plus

la cellule mais la ligne (de A:F par exemple) où on a
tapé le mot.

J'aurai bien demandé au créateur de la macro, mais je ne
retrouve pas le

mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel




.



Avatar
Gabriel
Bonjour,

exemple :
si sur la cellule C5 je mets "texte", alors la ligne 5 de la plage B5 à H5
devrait se mettre dans une couleur (au choix)
si "Texte2" alors pareil mais avec une autre couleur.
Etc...
Je peux le faire sans VBA avec les MEFC mais les MEFC ne proposent que 3
conditions.

Gabriel


"AV" a écrit dans le message de news:
eLwPPP$
Précise sur quelle plage tu veux utiliser et quelle plage est à colorer
si...


AV




Avatar
Gabriel
Salut,
Ca fonctionne très bien !
Merci Camille, ainsi qu'à tout ceux qui m'ont aidé.

Gabriel


"Ellimac" a écrit dans le message de
news: 0e7201c3bff6$097294b0$
Bonjour,

Pour chaque cas :
Range(DD.Offset(0, -1), DD.Offset(0,
4)).Interior.ColorIndex = 5

Camille

-----Message d'origine-----
Bonjour,

Voici une macro événementielle qui colore une cellule
d'une teinte


Private Sub Worksheet_Change(ByVal DD As Range)
If Not Intersect(DD, [B1:C10]) Is Nothing Then
If DD.Count > 1 Then Exit Sub
Select Case DD.Value
Case Is = "Toto"
DD.Interior.ColorIndex = 5
Case Is = "Tutu"
DD.Interior.ColorIndex = 3
Case Is = "Titi"
DD.Interior.ColorIndex = 4
Case Is = "Tata"
DD.Interior.ColorIndex = 6
Case Is = "Bobo"
DD.Interior.ColorIndex = 3
DD.Font.ColorIndex = 2
DD.Font.Bold = 2
MsgBox "Aie aie aie ;-) !"
End Select
End If
End Sub

Eh bien , j'aurai aimé savoir comment la modifier pour
qu'il ne colore plus

la cellule mais la ligne (de A:F par exemple) où on a
tapé le mot.

J'aurai bien demandé au créateur de la macro, mais je ne
retrouve pas le

mail dans le newsgroup (un certain dédé ?)

Merci
Gabriel




.