Bonjour
En attendant votre retour sur les questions de mon post précédent, essayez ce code
Sub ListeClasseursDansDossier()
Dim Chemin
Dim NomFichier As String
Dim wbsource As Workbook
Dim destrow As Integer
' Spécifiez le chemin d'accès au dossier contenant les classeurs
Chemin = ThisWorkbook.Path & Application.PathSeparator
' Vérifie si le dossier existe
If Dir(Chemin, vbDirectory) = "" Then
MsgBox "Le dossier spécifié n'existe pas.", vbCritical
Exit Sub
End If
' Désactive les mises à jour pour améliorer les performances
Application.ScreenUpdating = False
' Boucle à travers tous les fichiers du dossier
NomFichier = Dir(Chemin) '& "*.xlsx")
Do While NomFichier <> ""
' Ouvre le classeur
If NomFichier <> ThisWorkbook.Name Then
Set wbsource = Workbooks.Open(Chemin & NomFichier)
With ThisWorkbook.Sheets("Accueil")
destrow = .UsedRange.Rows.Count
If destrow > 1 Then destrow = destrow + 2
wbsource.ActiveSheet.UsedRange.Copy .Range("A" & destrow)
End With
' Ferme le classeur sans enregistrer les modifications
wbsource.Close SaveChanges:=False
End If
NomFichier = Dir
Loop
End Sub
Cela suppose que :
- votre fichier contenant le code se trouve dans le même dossier que les fichiers à consulter
- tous les fichiers xlsx ont une seule feuille (cela permet de toujours être sur la bonne feuille à l'ouverture du fichier xlsx)
- les fichiers xlsx n'ont pas de formules. Le cas échéant, le copier-coller créerait des liens entre les fichiers et le fichier contenant la macro
- L'importation se fait dans la feuille Accueil de votre fichier contenant le code
NB : Pour votre profil, mettez MAC 2011 plutôt que Excel2011. Merci de votre participation