Macro contrôler les doublons
echo11
-
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
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:
- Macro contrôler les doublons
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Doublons photos - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Supprimer les doublons excel - Guide