Private Sub Worksheet_Change(ByVal Target As Range)
Dim t
If Target.Column > 1 Or Target.Row = 1 Then Exit Sub
Application.EnableEvents = False
If Target(1) = "" Then
Target(1, 2) = ""
Else
t = Now
If Target(1) = Target(0, 1) And _
t < Application.Max(Columns(2)) + 3 / 86400 _
Then Target.EntireRow.Delete Else Target(1, 2) = t
End If
Application.EnableEvents = True
End Sub
Merci job75 mais c'est un macro qui supprime la ligne entière que je veux.Bonjour lestoiles1,
MFC sur la colonne A avec police blanche :
A+Code:=B1-DECALER(B1;-1;)<3/86400
A vrai dire, c'est un barcode qu'on dois scanner et ça dois etre automatique que la ligne soit supprimer car parfois il y a double scanne(moins de 3 sec)Vous devriez être capable de faire une boucle en commençant par la fin non ?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t
If Target.Column > 1 Or Target.Row = 1 Then Exit Sub
Application.EnableEvents = False
If Target(1) = "" Then
Target(1, 2) = ""
Else
t = Now
If t < Application.Max(Columns(2)) + 3 / 86400 Then Target.EntireRow.Delete Else Target(1, 2) = t
End If
Application.EnableEvents = True
End Sub
C'est super, merciSi vous voulez qu'entre 2 entrées il s'écoule au moins 3 secondes modifiez votre code :
VB:Private Sub Worksheet_Change(ByVal Target As Range) Dim t If Not Target.Address Like "$A$*" Or Target.Row = 1 Then Exit Sub If Target(1) = "" Then Target(1, 2) = "" Else t = Now If t < Application.Max(Columns(2)) + 3 / 86400 Then Target.EntireRow.Delete Else Target(1, 2) = t End If End Sub
Merci Job75,Au post #6 je viens d'ajouter les Application.EnableEvents.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t
If Target.Column > 1 Or Target.Row = 1 Then Exit Sub
Application.EnableEvents = False
If Target(1) = "" Then
Target(1, 2) = ""
Else
t = Now
If Target(1) = Target(0, 1) And _
t < Application.Max(Columns(2)) + 3 / 86400 _
Then Target.EntireRow.Delete Else Target(1, 2) = t
End If
Application.EnableEvents = True
End Sub