Remonter de doublon
Bonjour,
J'utilise une gestion de stock sous excel.
Je voudrais pourvoir remonter par un msgbox : qu'il y a un doublon entre la nouvelle entrée et ceux déjà présent dans la colonne A.
Je souhaite comparer que les cellule de la colonne A.
J'ai trouvé sur ce site un code :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Lg%, x%
Lg = Range("a65536").End(xlUp).Row
If Not Application.Intersect(Target, Range("a4:a" & Lg)) Is Nothing Then
If Application.CountIf(Range("a:a"), Target) > 1 Then
x = Application.Match(Target, Range("a:a"), 0)
If x = Target.Row Then
x = Application.Match(Target, Range(Target.Offset(1, 0), Cells(Lg, 1)), 0) + Target.Row
End If
MsgBox ("Ce nom existe déjà !" & Chr(10) & "ligne " & x)
'Cells(x, 1).Select
Target.ClearContents
Exit Sub
End If
End If
End Sub
Le soucis avec cela est que quand je supprime une ligne via un bouton "supprimer" d'un USERFORM, une fenetre arrive avec un défaut à cette ligne : If Application.CountIf(Range("a:a"), Target) > 1 Then
Je vous remercie pour le coup de pouce.
PS : je débute dans le VBA
Bonsoir JRMZ, bonsoir le forum,
Pas sûr d'avoir bien compris... Pourquoi supprimer la ligne via une Userform, il te suffit d'interdire le doublon au départ :
Private Sub Worksheet_Change(ByVal Target As Excel.Range) 'au changgement dans l'onglet
Dim DL As Integer
DL = Range("A65536").End(xlUp).Row
If Application.Intersect(Target, Range("A4:A" & DL)) Is Nothing Then Exit Sub
If Application.CountIf(Range("A:A"), Target) > 1 Then
Set R = Columns(1).Find(Target.Value, Range("A1"), xlValues, xlWhole)
Application.EnableEvents = False
MsgBox "Ce nom existe déjà ! Ligne : " & R.Row
Target.ClearContents
Target.Select
Application.EnableEvents = True
Exit Sub
End If
End Sub