Insertion date et heure du moment dans cellule

Bonjour,

j'ai une colonne dont j'insère des noms de client prédéfinis via une liste déroulante = colonne B

lorsque j'insère un client je souhaite afficher la date + heure à l'instant T. si la cellule de la colonne B est vide n'affiche rien

j'utilise cela:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then If Not (IsEmpty(Target.Value)) Then Range("H" & Target.Row).Value = Now Else Range("B" & Target.Row).ClearContents
End Sub

Ensuite j'ai une colonne où j'insère via une liste déroulante le mot "toto" dans la colonne O et je voudrais afficher dans la colonne I la date et heure à l'instant T

j'ai essayé cela:

If Target.Column = 15 Then If ActiveCell.Text Like "*toto*" Then Range("I" & Target.Row).Value = Now 

ce qui me donne le code suivant:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then If Not (IsEmpty(Target.Value)) Then Range("H" & Target.Row).Value = Now Else Range("B" & Target.Row).ClearContents
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then If Not (IsEmpty(Target.Value)) Then Range("H" & Target.Row).Value = Now Else Range("B" & Target.Row).ClearContents
End Sub

cela fonctionne, mais si je change ma valeur dans ma colonne client cela plante mon code.

pouvez-vous m'aider car je suis nuls en VBA ?

merci

End Sub

Bonjour,

Tu ne peux pas avoir deux procédures évènementielles identiques (Worksheet_Change) dans le même module !

Il te faut combiner tout ça dans la même procédure.

Par contre, une partie de ton code ne veux rien dire, je le résume :

'si on est sur la colonne 2 (B)...
If Target.Column = 2 Then

    'si la cellule cible (Target) n'est pas vide, en colonne H et sur la même ligne on inscrit la date et l'heure
    If Not (IsEmpty(Target.Value)) Then

        Range("H" & Target.Row).Value = Now

    'par contre, si elle est vide (la cellule cible) on la vide ?????
    Else

        Range("B" & Target.Row).ClearContents

    End If

End If

De plus, dans ton dernier code, tu ne fait que copier deux fois la même proc ! Je le verrai plutôt comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column <> 2 And Target.Column <> 15 Then Exit Sub

    If Target.Value = "" Then Exit Sub

    Select Case Target.Column

        Case 2: Target.Offset(, 6).Value = Now
        Case 15: If Target.Value Like "*toto*" Then Target.Offset(, -6).Value = Now

    End Select

End Sub

Bonjour Theze,

Merci pour ton aide. Merci pour l'explication je comprends mieux mon erreur.

Rechercher des sujets similaires à "insertion date heure moment"