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
Rechercher des sujets similaires à "remonter doublon"