Ca n'a pas l'air de marcher :/
Sinon j'ai réussi à trouver et un peu modifier un code ailleurs et ça fonctionne presque à un petit détail près.
Voilà mon code :
Sub Import()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
Application.ScreenUpdating = False
Set principal = ThisWorkbook
repertoire = "C:\Users\btombal\xxx"
ChDir repertoire
fichier = Dir("*.xlsm")
Do While fichier <> ""
If fichier <> principal.Name Then
Workbooks.Open fichier
On Error GoTo suivant
With Sheets("résumé sorties")
On Error GoTo 0
On Error Resume Next
.[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.[A:A].Insert Shift:=xlToRight
.Range("A1:A" & .[b65536].End(xlUp).Row) = Left(fichier, Len(fichier) - 4)
.UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
End With
ActiveWorkbook.Close False
End If
suivant:
If Err.Number = 9 Then MsgBox "Pas de feuille ""synth"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
fichier = Dir
Loop
End Sub
Le seul soucis c'est que j'aimerais copier les valeurs de mes autres excel et pas les formules. En effet étant donné que j'ai 50 lignes par fichier et qu'il me copie donc 50 lignes, lorsque j'arrive au fichier 2 je commence à la ligne 51 dans mon fichier résumé; mais comme ce code me copie la formule, il prend la formule ligne 51 du fichier 2 et les valeurs de mes cellules à partir du fichier 2 sont donc 0 partout.
Je ne sais pas si c'est très claire :/