XL 2013 Supprimer la dernière ligne selont le temps précédent

lestoiles1

XLDnaute Occasionnel
Bonjour ,

J'aimerais supprimer la dernière ligne si le decalage de temps avec le temps précedent est inferieur à 3 sécondes.

Merci d'avance

Lestoiles1
 

Pièces jointes

  • Supprimer la dernière ligne.xlsm
    20.7 KB · Affichages: 7
Solution
Bonjour lestoiles1, le forum,
VB:
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
A+

job75

XLDnaute Barbatruc
Si 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 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
 
Dernière édition:

lestoiles1

XLDnaute Occasionnel
Si 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
C'est super, merci
 

job75

XLDnaute Barbatruc
Bonjour lestoiles1, le forum,
VB:
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
A+
 

Discussions similaires

Réponses
8
Affichages
166
Réponses
9
Affichages
230
Réponses
3
Affichages
364

Membres actuellement en ligne

Statistiques des forums

Discussions
313 914
Messages
2 103 513
Membres
108 685
dernier inscrit
BAAK