Macro pour regrouper 79 fichier Excel 97-2003 dans un seul

sace54

XLDnaute Nouveau
Bonsoir,
Je suis à la recherche d'une macro me permettant de regrouper toutes les lignes non vides du second onglet de 43 fichiers ayant toujours la même structure. Mes 3 premières lignes sont communes à tous les fichiers ; mes données s'étendent des colonnes A à V, de la ligne 4 jusque 50 à 150 selon les fichiers
Version Excel : 97-2003
Localisation des fichiers : disséminés sur un réseau mais j'ai créé des raccourcis vers fichiers que j'ai tous regroupés dans un même dossier
J'ai essayé quelques macros glanés sur le net mais aucune ne fonctionne.
Celle qui n'est pas loi d'avoir marché est la suivante :

Sub Regroupe()
sousRépertoire = "Macro"
[A2].CurrentRegion.Offset(3, 0).Clear
Set maitre = ActiveWorkbook
Repertoire = ThisWorkbook.Path
nf = Dir(Repertoire & "\" & sousRépertoire & "\*.xls")
Do While nf <> ""
Workbooks.Open Filename:=Repertoire & "\" & sousRépertoire & "\" & nf
n = [A1].CurrentRegion.Rows.Count - 1
[A1].CurrentRegion.Offset(3, 0).Copy _
maitre.Sheets(1).[A65000].End(xlUp).Offset(3, 0)
ActiveWorkbook.Close False
nf = Dir
Loop
End Sub

Mais, bizarrement, la macro copie les données...qui disparaissent juste après!

Merci d'avance pour votre aide, je m'arrache les cheveux sur le sujet
 

Jacou

XLDnaute Impliqué
Re : Macro pour regrouper 79 fichier Excel 97-2003 dans un seul

Bonsoir sace54,

essaie ceci :
Sub Regroupe()
sousRépertoire = "Macro"
Set maitre = ActiveWorkbook
Repertoire = ThisWorkbook.Path
nf = Dir(Repertoire & "\" & sousRépertoire & "\*.xls")
Do While nf <> ""
Workbooks.Open Filename:=Repertoire & "\" & sousRépertoire & "\" & nf
Sheets(1).Activate
Range("A4").Select
l = ActiveCell.End(xlDown).Row
c = ActiveCell.End(xlToRight).Column
Range(Cells(4, 1), Cells(l, c)).Select
Selection.Copy
maitre.Activate
Sheets(1).Activate
If Range("A4") = "" Then Range("A4").Select Else Range("A4").End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Windows(nf).Activate
ActiveWorkbook.Close False
nf = Dir
Loop
End Sub

à vérifier et à améliorer sans doute
 

sace54

XLDnaute Nouveau
Re : Macro pour regrouper 79 fichier Excel 97-2003 dans un seul

Bonjour,
j'ai mis longtemps à faire le test sur le réseau mais une fois fait, je me retrouve avec plusieurs problèmes :
1/ j'ai 4 onglets dans les fichiers d'origine et seul l'onglet "Toto" m'intéresse ; comment modifier la macro pour qu'elle ne considère que cet onglet dans le fichier?
2/ mon sous répertoire sur le réseau ne contient pas les fichiers xls mais des raccourcis vers ces fichiers qui sont eux mêmes répartis à divers endroits sur le réseau ; la macro peut elle gérer la concaténation sur la base de ces raccourcis ou faut-il regrouper tous les fichiers dans un même dossier? Si les raccourcis suffisent, comment modifier la macro pour que cela fonctionne? (puisque dans le cas présent, la macro ne "voit" pas les raccourcis) remplacer .xls par .ink?
Merci!
 

Jacou

XLDnaute Impliqué
Re : Macro pour regrouper 79 fichier Excel 97-2003 dans un seul

Bonjour sace54
pour le premier souci, remplace "Sheets(1).Activate" (ligne 7) par "Sheets("Toto").Activate ( ne pas remplacer la 2ème instruction semblable en ligne 14).
pour le second (les raccourcis ont une extension lnk et non ink) remplace les instructions comme suit :
en ligne 4
nf = Dir(Repertoire & "\" & sousRépertoire & "\*.lnk") ' extension lnk à la place de xls
en ligne 17
Windows(Left(nf, Len(nf) - 4)).Activate ' pour ne pas tenir compte de ".lnk" (le nom du raccourci est en fait nomfichier.xls.lnk

normalement ça devrait fonctionner
 

Discussions similaires

Statistiques des forums

Discussions
311 710
Messages
2 081 781
Membres
101 817
dernier inscrit
carvajal