Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, x$, i%, j%
Set r = Intersect(Target, Range("A2:B" & Rows.Count), UsedRange)
If r Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next 'si la feuille n'existe pas
With Sheets("Salarié XX")
If IsError(.Name) Then MsgBox "Créez la feuille 'Salarié XX' !", 48: Exit Sub
.Visible = xlSheetVisible 'au cas où la feuille serait masquée
For Each r In Intersect(r.EntireRow, [A:B]).Rows 'si entrées multiples (copier-coller)
If r.Cells(1) <> "" And r.Cells(2) <> "" Then 'il faut le nom et le prénom
x = r.Cells(1) & " " & r.Cells(2)
If IsError(Sheets(x)) Then
.Copy After:=Me
ActiveSheet.Name = x
Me.Hyperlinks.Add r.Cells(1), "", "#'" & x & "'!A1" 'lien hypertexte
End If
End If
Next
For i = Me.Index + 1 To .Index - 1
For j = i + 1 To .Index - 1
If Sheets(j).Name < Sheets(i).Name Then Sheets(j).Move Before:=Sheets(i)
Next j, i
End With
Me.Activate
End Sub