Regroupement de fichiers a plusieurs onglets

  • Initiateur de la discussion Initiateur de la discussion shmider
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

shmider

XLDnaute Occasionnel
Bonjour,

Voilà, je souhaiterai regrouper 4 fichiers excel dans une feuille intérmediaire pour pouvoir faire des rechercheV plus facilement.

Pour l'instant j utilise ça comme script (Cf. en bas), mais ça ne prend pas toutes les lignes, et parfois meme les fichiers sont copier l un sur l autre !!!

Sub test3()
Dim Fich As String, Ligne As Double
Fich = Dir("C:\Documents and Settings\Bureau\SUIVI\*.xls")
Do While Fich <> ""
Ligne = Range("a65536").End(xlUp).Row + 0
Workbooks.Open "C:\Documents and Settings\SUIVI\" & Fich
Range("A1", Range("Z65536").End(xlUp)).Copy _
ThisWorkbook.Sheets(2).Cells(Ligne, 1)
ActiveWorkbook.Close False
Fich = Dir
Loop
End Sub

je ne comprends pas ce qui ce passe à vrai dire!!
 
Re : Regroupement de fichiers a plusieurs onglets

Bonjour

quelques pistes d'explication

Do While Fich <> "" 'tu balayes successivement tous les fichiers XL du répertoire Fich
Ligne = Range("a65536").End(xlUp).Row + 0 'tu détectes ta dernière ligne où en colonne A tu as une donnée
Workbooks.Open "C:\Documents and Settings\SUIVI\" & Fich
'tu ouvres ton fichier "Fich", tu regardes en Z la dernière ligne contenant une donnée, tu copies la zone A1:Zx sur le feuille2 de ton fichier acuel, à partir de la dernière ligne contenant des valeurs en colonne A
Range("A1", Range("Z65536").End(xlUp)).Copy _
ThisWorkbook.Sheets(2).Cells(Ligne, 1)
'tu fermes le fichier Fich
ActiveWorkbook.Close False
Fich = Dir
Loop
End Sub

A première vue, tu écrases toujours la dernière ligne, il faudrait écrire
ThisWorkbook.Sheets(2).Cells(Ligne+1, 1)
Les risques sur des manques de ligne sont présents si tu n'as pas toujours des données en A ou Z car les Range("Z65536").End(xlUp)) ou équivalent détectent la dernière donnée de la colonne
sinon j'aurais plutôt écrit Range("Z65536").End(xlUp)).address pour être sûr que c'est bien l'adresse

voilà ce que j'en comprends mais je ne l'ai pas essayé. tu devrais le lancer à la main en pas à pas avec F8 pour regarder ce qui se passe réellement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
461
Réponses
10
Affichages
547
Retour