bonjour,
je travaille sur une macro pour identifier tout doublon lorsqu'on tappe une valeur
ca va controler tout le classeur et m'avertir si un doublon existe
le probleme c'est que si je fais une selection et supprime, il va faire appliquer la macro
si je fais une selection de lignes et je cut alors il recommence
quelqu'un pourrait m'aider à limiter l'emploi de cette macro automatique à simplement lorsque je tappe du texte et des chiffres?
Merci de votre aide
voici le code
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim Sh As Worksheet
Dim TestCompte As Long, TestSiren As Long, Tv As Variant
Tv = Target.Value
If ActiveSheet.Name <> "NEW Scans" Then
Exit Sub
End If
For Each Sh In ActiveWorkbook.Sheets
'colonne à "surveiller" (ici colonne A)
If Target.Column = 1 Then
'pour vérifier si la saisie n'existe pas déjà dans la colonne
TestCompte = TestCompte + Application.WorksheetFunction.CountIf(Sh.Range("A:A"), Tv)
If TestCompte > 1 Then
a = MsgBox("this Serial already exist !", vbCritical)
Exit Sub
End If
End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
je travaille sur une macro pour identifier tout doublon lorsqu'on tappe une valeur
ca va controler tout le classeur et m'avertir si un doublon existe
le probleme c'est que si je fais une selection et supprime, il va faire appliquer la macro
si je fais une selection de lignes et je cut alors il recommence
quelqu'un pourrait m'aider à limiter l'emploi de cette macro automatique à simplement lorsque je tappe du texte et des chiffres?
Merci de votre aide
voici le code
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim Sh As Worksheet
Dim TestCompte As Long, TestSiren As Long, Tv As Variant
Tv = Target.Value
If ActiveSheet.Name <> "NEW Scans" Then
Exit Sub
End If
For Each Sh In ActiveWorkbook.Sheets
'colonne à "surveiller" (ici colonne A)
If Target.Column = 1 Then
'pour vérifier si la saisie n'existe pas déjà dans la colonne
TestCompte = TestCompte + Application.WorksheetFunction.CountIf(Sh.Range("A:A"), Tv)
If TestCompte > 1 Then
a = MsgBox("this Serial already exist !", vbCritical)
Exit Sub
End If
End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub