Code VBA figer le temps

Bonjour,

J'aimerai figer le temps dans la colonne D suivant le mot "ok" en colonne E qui serait donnée par la somme des cellules des colonne F et G.

Cellule E1 =si((F1+G1)=2;"ok";"")
Cellule E2 =si((F2+G2)=2;"ok";"")
.......

N'étant pas une spécialiste du code VBA serait-il possible de compléter ou de modifier le code ci-dessous.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("e1:e16")) Is Nothing Then Exit Sub
    
    If Target.Value = "ok" Then Target.Offset(0, -1).Value = Time
    
End Sub

Merci.
Bonne journée.

Configuration: Windows / Chrome 71.0.3578.98

6 réponses

  1. Bonjour,

    Le changement de valeur du résultat d'une cellule ne provoque pas le déclenchement de la macro "Worksheet_Change". Vois si les valeurs de F1 ou G1 résultent d'une formule ou non. S'ils ne résultent pas d'une formule ou non. Reviens avec la réponse.

    Cordialement.

    Daniel
    0
    1. Bonjour Daniel,

      Les valeurs de F1 et G1 sont rentrées manuellement.

      Bonne journée.
      0
      1. Essaie :

        Private Sub Worksheet_Change(ByVal Target As Range)
            If Intersect(Target, Range("F1:G16")) Is Nothing Then Exit Sub
            Cells(Target.Row, 4).Value = Time
        End Sub


        Daniel
        0
    2. Bonjour
      A tester

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Column = 5 Then
      Target.Offset(0, -1) = Format(Now, "dd/mm/yyyy")
      End If
      End Sub
      0
      1. Bonjour JCB40,
        L'entrée en colonne 5 ne se fait pas manuellement mais par une formule.
        Pour mon cas il est important que le déclencheur soit le mot "ok" et que le critère ne soit que dans une colonne, pour l'adapter à plusieurs tableaux.
        Merci pour ton aide.
        0
    3. Ne serait-il pas possible de réagir juste sur le "OK" en colonne E;
      Pour pouvoir l'adapter à plusieurs tableaux.

      Merci.
      0
      1. Pour essayer d'être plus claire.
        Voici la formule a transcrire en code VBA.
        en D1:=si(E1="ok";stop le temps;"")
        en D2:=si(E2="ok";stop le temps;"")
        .......

        Juste cette condition.

        Merci encore.
        0
        1. Merci,
          Problème résolu.
          Bonne journée.
          0
          1. Pour info, comment l'as-tu résolu ?

            Daniel
            0