Code VBA figer le temps

Fermé
Twixman Messages postés 8 Date d'inscription jeudi 7 février 2019 Statut Membre Dernière intervention 9 mars 2019 - Modifié le 7 févr. 2019 à 10:48
danielc0 Messages postés 1235 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 31 octobre 2024 - 8 févr. 2019 à 12:42
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
A voir également:

6 réponses

danielc0 Messages postés 1235 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 31 octobre 2024 140
7 févr. 2019 à 11:01
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
Twixman Messages postés 8 Date d'inscription jeudi 7 février 2019 Statut Membre Dernière intervention 9 mars 2019
7 févr. 2019 à 11:14
Bonjour Daniel,

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

Bonne journée.
0
danielc0 Messages postés 1235 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 31 octobre 2024 140
7 févr. 2019 à 11:21
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
JCB40 Messages postés 2926 Date d'inscription lundi 2 juillet 2018 Statut Membre Dernière intervention 4 octobre 2024 461
7 févr. 2019 à 11:30
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
Twixman Messages postés 8 Date d'inscription jeudi 7 février 2019 Statut Membre Dernière intervention 9 mars 2019
7 févr. 2019 à 11:48
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
Twixman Messages postés 8 Date d'inscription jeudi 7 février 2019 Statut Membre Dernière intervention 9 mars 2019
7 févr. 2019 à 11:36
Ne serait-il pas possible de réagir juste sur le "OK" en colonne E;
Pour pouvoir l'adapter à plusieurs tableaux.

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twixman Messages postés 8 Date d'inscription jeudi 7 février 2019 Statut Membre Dernière intervention 9 mars 2019
7 févr. 2019 à 12:02
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
Twixman Messages postés 8 Date d'inscription jeudi 7 février 2019 Statut Membre Dernière intervention 9 mars 2019
8 févr. 2019 à 12:12
Merci,
Problème résolu.
Bonne journée.
0
danielc0 Messages postés 1235 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 31 octobre 2024 140
8 févr. 2019 à 12:42
Pour info, comment l'as-tu résolu ?

Daniel
0