Sub ExtractionDatas()
Dim idxSortKey As Variant
With Sheets("Simul") 'Travailler sur la feuille Simul
'Nettoyer les éventuelles donnée présentes dans la plage d'extraction sans la ligne d'entête
With .Range("E14").CurrentRegion
If .Rows.Count < 1 Then .Resize(.Rows.Count - 1, .Columns.Count).ClearContents
End With
'Lancer l'extraction des données
Sheets("data").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range("E1:G3"), CopyToRange:=.Range("E14").CurrentRegion.Rows(1)
'Travailler sur la plage d'extraction
With .Range("E14").CurrentRegion
'S'il y a au moins 3 ligne dont l'entête
If .Rows.Count > 2 Then
'Cherche la position de la clé de tri dans la première ligne d'extraction
idxSortKey = Application.Match(.Parent.Range("A13"), .Rows(1), 0)
'Si la position de clé de tri est trouvé, lancer le tri
If Not IsError(idxSortKey) Then .Sort key1:=.Cells(1, idxSortKey), Order1:=xlAscending, Header:=xlYes
End If
End With
End With
End Sub