Ecrire plusieurs évenements dans une macro
Bonjour,
J'essayais de faire fonctionner plusieurs événement à la suite:
Le premier est une modification de couleur sur une partie de la ligne quand je change de Statut sur mon projet
Le deuxième (que je n'arrive pas à faire fonctionner) est pour faire marquer une date dans la colonne BC quand une modification est fait sur une ligne.
Private Sub worksheet_Change(ByVal Target As Range)
'Mises en Formes Conditionnelles
If Not Intersect(Target, Range("O:O")) Is Nothing Then
If Not Intersect(Range("O:O"), Range(Target.Address)) _
Is Nothing And Target.Count = 1 Then
With Target
Select Case .Value
Case Is = "E": i = RGB(204, 255, 255)
Case Is = "I": i = RGB(255, 204, 153)
Case Is = "BDC": i = RGB(149, 179, 215)
Case Is = "A": i = RGB(255, 0, 0)
Case Is = "RA": i = RGB(0, 176, 80)
Case Is = "TX-FO": i = RGB(153, 51, 255)
Case Is = "CDC": i = RGB(246, 230, 162)
Case Is = "NEGO": i = RGB(98, 145, 162)
Case Is = "TFX": i = RGB(102, 204, 255)
Case Is = "C": i = RGB(204, 204, 0)
End Select
.Interior.Color = i
.Offset(, -13).Resize(, 16).Interior.Color = i
End With
End If
If Not Application Then EnableEvents = False Is Nothing
Cells(sel.Row, "BC").Value = Date + Time
Application.EnableEvents = True
End If
End Sub
Je ne suis pas une experte en VBA (juste les bases), j'arrive à lire et un peu à comprendre mais là je suis perdu.
Quelqu'un pourrait m'aider s'il vous plait?
Bonjour,
Je ne comprends pas le test ici:
If Not Application Then EnableEvents = False Is Nothing
Cells(sel.Row, "BC").Value = Date + Time
Application.EnableEvents = True
End If
si pas d'application alors désactive les évènements et évènements est rien?
et d'où sort sel.Row, sel c'est quoi?
Pourquoi ne pas faire ça?
Application.EnableEvents = False
Cells(target.Row, "BC").Value = Date + Time
Application.EnableEvents = TrueMerci
Mais je ne sais pas comment compiler les deux quand je colle rien ne ce passe.
Private Sub worksheet_Change(ByVal Target As Range)
'Mises en Formes Conditionnelles
If Not Intersect(Target, Range("O:O")) Is Nothing Then
If Not Intersect(Range("O:O"), Range(Target.Address)) _
Is Nothing And Target.Count = 1 Then
With Target
Select Case .Value
Case Is = "E": i = RGB(204, 255, 255)
Case Is = "I": i = RGB(255, 204, 153)
Case Is = "BDC": i = RGB(149, 179, 215)
Case Is = "A": i = RGB(255, 0, 0)
Case Is = "RA": i = RGB(0, 176, 80)
Case Is = "TX-FO": i = RGB(153, 51, 255)
Case Is = "CDC": i = RGB(246, 230, 162)
Case Is = "NEGO": i = RGB(98, 145, 162)
Case Is = "TFX": i = RGB(102, 204, 255)
Case Is = "C": i = RGB(204, 204, 0)
End Select
.Interior.Color = i
.Offset(, -13).Resize(, 16).Interior.Color = i
End With
End If
Application.EnableEvents = False
Cells(Target.Row, "BC").Value = Date + Time
Application.EnableEvents = True
End If
End SubBonjour,
j'ai remarqué des hics dans ton programme, voici une correction d'après moi (dur sans pouvoir tester sur le fichier):
Private Sub worksheet_Change(ByVal Target As Range)
'Mises en Formes Conditionnelles
If Not Intersect(Target, Range("O:O")) Is Nothing And Target.Count = 1 Then
With Target
Select Case .Value
Case Is = "E": i = RGB(204, 255, 255)
Case Is = "I": i = RGB(255, 204, 153)
Case Is = "BDC": i = RGB(149, 179, 215)
Case Is = "A": i = RGB(255, 0, 0)
Case Is = "RA": i = RGB(0, 176, 80)
Case Is = "TX-FO": i = RGB(153, 51, 255)
Case Is = "CDC": i = RGB(246, 230, 162)
Case Is = "NEGO": i = RGB(98, 145, 162)
Case Is = "TFX": i = RGB(102, 204, 255)
Case Is = "C": i = RGB(204, 204, 0)
End Select
.Interior.Color = i
.Offset(, -13).Resize(, 16).Interior.Color = i
End With
End If
Application.EnableEvents = False
Cells(Target.Row, "BC").Value = Date + Time
Application.EnableEvents = True
End SubTu testais deux fois que ta cellule qui change était bien sur la colonne O, j'ai testé le programme actuel chez moi et ça marche.
Super merci ça marche !!!!