Bonjour toutes et tous et bon Week end
j'ai essayé d'effectuer ton fichier mais il est trop lourd de plus tu avais mis dès le départ dans la seule feuille Récap maintenant c'est dans une feuille différente avec des onglets x, j'ai vite abandonné désolé
1/ Le fichier et trop volumineux faudrait l'alléger
2/ cela ne sert à rien de mettre 50 voir plus d'onglets pour des tests des essais le mieux dans mettre une dizaine et allégé ton fichier
3/ un post similaire a été demandé récemment, m'semble que c'est H2SO4 qu'avait donné une formule
le code ci-dessous est à améliorer suivant ton besoin
Sub Récap()
' En Vert ... tous les Commentaires Explicatifs ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Déclaration des Variables
Dim f As Worksheet
Dim der As Long
' Effacer la plage qui va recevoir les données
Feuil4.Range("A2:S550").ClearContents
' Boucle Pour chaque Feuille dont le nom est différent de Récap et de Données
For Each f In Worksheets
If f.Name <> "S1" And f.Name <> "S2" Then ' <=========================================>ajouter ici
' Copier la plage qui va de la cellule A3 à Sx
' le x éest la dernière ligne en premnant la colonne B comme référence
f.Range("A2:S" & Application.WorksheetFunction.Max(3, f.Range("B" & Rows.Count).End(xlUp).Row)).Copy
' Déterminer la première ligne ligne disponible pour la copie dans la feuille Récap
der = Feuil1.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
' Coller la plage ainsi déterminée ... au bon endroit ...
Feuil1.Range("A" & der).PasteSpecial xlPasteAll
End If
Next f
' Stopper le mode Copier Coller
Application.CutCopyMode = False
' Exécuter la macro du Tri
Application.Run ("Récap_S")
' Se placer en A2
Range("A2").Select
End Sub
crdlt,
André