Figer le temps

Bonjour,

J’aimerais pouvoir figer l'heure dans une cellule d’après le résultat d’une autre cellule.

Ex: A1: =si(A2>1;(figer heure);0)

A2: =A3+A4

j' ai déjà ce code qui fonctionne en remplissent la cellule mais pas en fonction d' un résultat.

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("h14:h63")) Is Nothing Then Exit Sub

Target.Offset(0, -5) = Now

End Sub

Merci.

Bonjour,

Sans plus d'explications voilà :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("h14:h63")) Is Nothing Then Exit Sub

    Application.EnableEvents = False

    If Range("A2").Value > 1 Then Range("A1").Value = Time

    Application.EnableEvents = True

End Sub

Merci Theze,

Ne saurait-on pas isoler juste cette partie.

If Range("A2").Value > 1 Then Range("A1").Value = Time

Application.EnableEvents = True

Car j'ai besoin de l'appliquer de A2:Z2 et A1:Z2 sens que les valeur ne change.

Merci pour ta réponse.

Bonjour,

Avec ce code, si tu modifie une cellule de la ligne 2 et que la valeur entrée est supérieure à 1, la cellule du dessus reçoit l'heure :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("A2:Z2")) Is Nothing Then Exit Sub

    Application.EnableEvents = False

    If Target.Value > 1 Then Target.Offset(-1).Value = Time

    Application.EnableEvents = True

End Sub

Bonjour,

Merci de ta réponse matinale.

J'y suis presque grâce à toi.

Mais cela fonctionne lorsque je rentre manuellement un nombre plus grand que 1.

Ce que j'aimerais bien faire c'est que le nombre se calcule par rapport à deux autres cellules.

Je te joins un fichier pour exemple.

Il suffit juste de rentrer les scores dans la colonne H et le temps s'affiche dans la colonne D par rapport au résulta de la colonne E.

Merci.

PS: j'ai adapté le code pour que cela fonctionne par colonnes.

Testes ce code. L'heure est entrée seulement si les deux scores sont saisis, que la saisie se fasse en premier par le premier joueur ou par le second :

Private Sub Worksheet_Change(ByVal Target As Range)

    'comme la saisie est manuelle en colonne H, c'est cette dernière qui doit être la cible
    If Intersect(Target, Range("H6:H15")) Is Nothing Then Exit Sub

    Application.EnableEvents = False

    'sur les lignes impair
    If Target.Row Mod 2 = 1 And Target.Value <> "" And Target.Offset(-1).Value <> "" Then
        Target.Offset(-1, -4).Value = Time
    End If

    'sur les lignes pair
    If Target.Row Mod 2 = 0 And Target.Value <> "" And Target.Offset(1).Value <> "" Then
        Target.Offset(, -4).Value = Time
    End If

    Application.EnableEvents = True

End Sub

Re,

c'est vraiment le résultat "2" en colonne E qui doit donner stop du temps pour que je puisse l'adapter à mon tableau.

Un peut comme ce code qui donne un stop sur une entrée dans une cellule et non sur un résultat.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("h14:h63")) Is Nothing Then Exit Sub
Target.Offset(0, -5) = Now
End Sub

ça change rien par rapport au code que je t'ai donné précédemment mais bon !

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("H6:H15")) Is Nothing Then Exit Sub

    Application.EnableEvents = False

    With Target

        If .Row Mod 2 = 1 And .Offset(-1, -3) = 2 Then .Offset(-1, -4).Value = Time
        If .Row Mod 2 = 0 And .Offset(, -3).Value = 2 Then .Offset(, -4).Value = Time

    End With

    Application.EnableEvents = True

End Sub

Merci Merci de ta patience,

Difficile d'exprimer mon idée par écrit mais ici le code reconnaît une entrée de nombre en colonne H.

Ne pourrait -il pas reconnaître le "2"ou "OK" ,par exemple, en colonne E pour arrêter le temps.

Je ne sais pas si ça se fait, mais serait-il possible de se joindre par téléphone.

Rechercher des sujets similaires à "figer temps"