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 = True

Merci

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 Sub

Bonjour,

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 Sub

Tu 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 !!!!

Rechercher des sujets similaires à "ecrire evenements macro"