Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2013Supprimer la dernière ligne selont le temps précédent
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
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 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)
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
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
Merci Job75,
Une derniere condition, si dans les 2 derniere cellules de la colonne A ne sont pas identiques, donc on ne supprime pas la derniere colonne car parfois le scanne passe tres vite.
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
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD