Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Dim administrateur
administrateur = Array("Dell", "titi", "toto", "tutu")
If IsNumeric(Application.Match(Environ("username"), administrateur, 0)) Then Exit Sub
Me.Names.Add "Utilisateur", Environ("username")
If Sh.Name = "Accueil" Then Exit Sub 'au cas où cette feuille existe
If Source.Areas.Count > 1 Or Source.Column < 5 _
Or Source.Column + Source.Columns.Count > 8 Then Annule
Dim plage As Range
Set plage = Source.Columns(1).Offset(, 3 - Source.Column) 'plage correspondante en colonne C
If Source.Rows.Count > Application.CountIf(plage, Environ("username")) Then Annule
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Source As Range)
Dim administrateur
administrateur = Array("Dell", "titi", "toto", "tutu")
If IsNumeric(Application.Match(Environ("username"), administrateur, 0)) Then Exit Sub
Me.Names.Add "Utilisateur", Environ("username")
If Sh.Name = "Accueil" Or Source.Address = "$H$1" Then Exit Sub
Dim cel As Range, plage As Range
For Each cel In Sh.Range("C2", Sh.Range("C65536").End(xlUp))
If cel = Environ("username") Then Set plage = Union(cel, IIf(plage Is Nothing, cel, plage))
Next
If plage Is Nothing Then Sh.Range("H1").Select: Exit Sub
Set plage = Intersect(Source, plage.EntireRow, Sh.Range("E:G"))
If plage Is Nothing Then Sh.Range("H1").Select: Exit Sub
Application.EnableEvents = False
plage.Select
Application.EnableEvents = True
End Sub