Bonsoir Didier, le Forum
Merci pour le compliment ! maintenant je suis tout rouge lol...
Le problème est simple, c'était voulu, je définie la Plage en fonction d'une saisie à la suite logique ligne à ligne ... là apparemment tu veux saisir depuis n'importe quelle ligne...
Il faut transformer comme suit :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ref As String
Dim Cell As Range, Plage As Range
On Error Resume Next
If Application.Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub
Ref = Target.Value
Set Plage = Range("G6:G" & Range("G65536").End(xlUp).Row)
For Each Cell In Plage
If Cell = Ref Then
If Cell.Row <> Target.Row 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
End If
Next Cell
End Sub
Bon Dimanche
@+Thierry