Macro contrôler les doublons

echo11 -  
 echo11 -
Bonjour,

J'ai trouvé le code suivant dans un bouquin. La macro permet de prévenir les doublons. Seulement elle ne marche pas chez moi. Il manque quelque chose ("bloc if sans end if") mais je ne vois pas où.
Quelqu'un peut-il regarder ? merci d'avance.

Voici le code :

'Evénement : contrôle les doublons

Private Sub Worksheet_Change(ByVal Target As Range)

Dim vCol As Integer
Dim vRéponse As Integer
Dim vCellule As Object

'Qu'est-ce qui a été modifié ?
'Une cellule ou une plage ?

If Target.Colums.Count > 1 Or Target.Rows.Count > 1 Then
Exit Sub

' si la cellule modifiée est vide

If Target.Value = "" Then Exit Sub

vCol = Target.Column

'si la cellule modifiée est dans la colonne A ou B

If vCol = 1 Or vCol = 2 Then

' boucle qui examine chaque cellule
' des colonnes A et B

For Each vCellule In Range(Chr(vCol + 64) & ":" & Chr(vCol + 64))
'si un doublon a été repéré

If LCase(vCellule.Value) = LCase(Target.Value) And vCellule.Address <> Target.Address Then
vRéponse = MsgBox("Cette donnée a déjà été introduite dans la colonne." & Chr(10) & "Voulez-vous la laisser ?", vbYesNo + vbInformation, "Attention")

' si la réponse au message est Non

If vRéponse = vbNo Then
Range(Target.Address).Activate
SendKeys "{F2}"
End If
Exit Sub
End If

' Test pour ne pas dépasser la dernière cellule utilisée

If vCellule.Row > ActiveCell.SpecialCells(xlLastCell).Row Then Exit Sub
Next

End If
End Sub
A voir également:

1 réponse

echo11
 
il s'agit d'une macro VBA pour Excel ...
2