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 SubEnsuite 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 Subcela 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 IfDe 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 SubBonjour Theze,
Merci pour ton aide. Merci pour l'explication je comprends mieux mon erreur.