D
Didier MAUCOTEL
Guest
Salut le forum,
Voici quelques lignes de l'excellent @+Thierry permettant de rechercher des doublons dans une liste et d'afficher un message :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ref As String
Dim Cell As Range, Plage As Range
Dim L As Integer
On Error Resume Next
If Application.Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub
Ref = Target.Value
L = Target.Row
Set Plage = Range("G6:G" & L - 1)
For Each Cell In Plage
If Cell = Ref Then
MsgBox "Le nom de l'enseignant(e) est déjà inscrit dans une autre école !!" & Chr(13) & "Si c'est un changement de poste, n'oubliez de l'effacer de la précédente école." & Chr(13) & "Si c'est une erreur, vérifiez vos informations." & Cell.Address, vbCritical, "OPEP 2004 vous informe..."
Cell.Activate
Exit Sub
End If
Next Cell
End Sub
Ceci permet de reconnaitre des doublons pour une saisie en fin de colonne.
Je souhaiterais que la recherche de doublons se fasse quelque soit la ligne où se fait la saisie (apparemment, c'est la ligne "Set Plage = Range("G6:G" & L - 1)").
Merci pour votre aise.
Mauco
Voici quelques lignes de l'excellent @+Thierry permettant de rechercher des doublons dans une liste et d'afficher un message :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ref As String
Dim Cell As Range, Plage As Range
Dim L As Integer
On Error Resume Next
If Application.Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub
Ref = Target.Value
L = Target.Row
Set Plage = Range("G6:G" & L - 1)
For Each Cell In Plage
If Cell = Ref Then
MsgBox "Le nom de l'enseignant(e) est déjà inscrit dans une autre école !!" & Chr(13) & "Si c'est un changement de poste, n'oubliez de l'effacer de la précédente école." & Chr(13) & "Si c'est une erreur, vérifiez vos informations." & Cell.Address, vbCritical, "OPEP 2004 vous informe..."
Cell.Activate
Exit Sub
End If
Next Cell
End Sub
Ceci permet de reconnaitre des doublons pour une saisie en fin de colonne.
Je souhaiterais que la recherche de doublons se fasse quelque soit la ligne où se fait la saisie (apparemment, c'est la ligne "Set Plage = Range("G6:G" & L - 1)").
Merci pour votre aise.
Mauco