Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'utilisation de l'événement du changement de selection
'A savoir Target est la cellule selectionnée
'exemple Target.Row ou Target.Column ou Target.value
If Target.Count > 1 Then Exit Sub 'si plusieurs selections on quitte
On Error Resume Next 'on gère si on va en erreurs
'on cherche si la cellule du dessus de la selection est en Feuil1
Set c = Feuil1.UsedRange.Find(Target.Offset(-1, 0), LookIn:=xlValues, LookAt:=xlWhole)
If Err > 0 Then Exit Sub 'si rien trouvé on créé une error alors on quitte
nom = c 'nom est le Target.Offset(-1, 0) soit la cellule en dessus decelle selectionnée
Feuil2.[J1:J1000].Clear 'on efface l'ancienne liste
With Feuil4 'j'utilise le codename et non le nom que tu as donné à l'onglet
For k = 1 To .[A65000].End(3).Row ' boucle sur feuil4 de ligne1 à la derniere ligne
'on cherche sur toute la ligne si on trouve nom (exemple GH7)
Set c = .Range("B" & k & ":IV" & k).Find(nom, LookIn:=xlValues, LookAt:=xlWhole)
If c = nom Then 'on a trouvé
If Err = 0 Then 'si pas d'error sinon va à Else
sup = .Range("A" & c.Row) 'on trouve le nom du superviseur
'on a le nom mais faut verifier en Prévi!
i = Application.Match(sup, [Prévi!A1:A500], 0) 'i renvoie le N°ligne du superviseur en Prévi
If Target.Column = 11 Then 'colonne 11 c'est un 1er tour
'si cellule(ligne,colonne)=rien
If Feuil3.Cells(i, 2) = "" And Feuil3.Cells(i, 3) = "" Then
'1ere boucle lig=0 donc 0=0+1 soit 1 et aprés 1=1+1 donc 2 et ainsi de suite
lig = lig + 1: Feuil2.Cells(lig, 10) = sup 'on écrit le nom du superviseur en sups!
End If
Else
'ici c'est pas le 1er tour il faut pas de "x" en col B
If Feuil3.Cells(i, 2) = "" Then lig = lig + 1: Feuil2.Cells(lig, 10) = sup
End If
Else
Err.Clear 'on efface les error éventuelles
End If
End If
Set c = Nothing 'on enlève de la mémoire c afin de recommencer la boucle
Next ' fin de la boucle on retourne au For....
End With
End Sub