Code qui aggrege des fichiers dans un gros fichiers
sunstephane
Messages postés7Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention27 juin 2006
-
18 juil. 2005 à 17:25
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 2006
-
19 juil. 2005 à 12:04
Bonjour,
je cherche un moyen par une macro d'aggreger des fichiers ayant des
infos et qui ont des formats semblables dans un gros fichier.
Il faut donc
1) aller chercher les fichiers automatiquement dans un répertoire (noms
de fichiers étant deja fixés , existe-t-il une fonction qui ouvre tous
les fichiers csv d'un repertoire?)
2) les aggreger ensemble, en sachant qu'ils peuvent avoir un nombre de lignes differents, mais tjs le meme nombre de colonne.
Merci d'avance pour ceux qui ont des pistes, et surtout m'indiquer quelles fonctions VB utiliser.
sunstephane
Messages postés7Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention27 juin 2006 19 juil. 2005 à 10:49
supposons qu'on ait 3 fichiers 1.xls, 2.xls et 3.xls (avec une seule feuille a chaque fois)
avec ma macro, j'aimerai que elle ouvre 1.xls, copie tout de 1.xls dans un nouveau fichier, puis ouvre 2.xls, copie tout a la suite du contenu precedent, puis pareil pour 3.xls .
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 19 juil. 2005 à 12:04
Bonjour,
Ce code ouvre les fichier.xls sélectionnés, ensuite les intègres dans
un seul classeurs que tu enregistres en quittant sous le nom que tu
veux. Mais attention, si tu as des macros dans ces classeurs,
sauvegarde les avant (dans le bloc notes par exemple) afin de les
remèttres ensuite, car à la fusion, toutes les macros sont perdues. Si
tu veux sauvegarder cette macro, enregistre aussi le classeur qui la
contient.
Sub ConvertirFichiersEnFeuilles()
On Error GoTo gesterreur
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur As Workbook, WkFinal As Workbook, WsFeuille As Worksheet
VarListeFichiers = Application.GetOpenFilename(filefilter:="Classeurs
eXceL,*.xls", Title:="Choisissez les Classeurs à récupérer",
MultiSelect:=True)
If VarType(VarListeFichiers) = vbBoolean Then MsgBox "Abandon !" : Exit Sub 'pour identifier le bouton annuler
Set WkFinal = Workbooks.Add 'générer le classeur final
For Each VarFichier In VarListeFichiers
Set WkClasseur = Workbooks.Open(FileName:=VarFichier)
For Each WsFeuille In WkClasseur.Worksheets
WsFeuille.Move before:=WkFinal.Worksheets(1)
Next WsFeuille
WkClasseur.Close savechanges:=False
Next VarFichier
Exit Sub
gesterreur:
'classeur vide
If Err.Number = -2147221080 Then
Resume Next
End If
End Sub
jpleroisse
Si la réponse te conviens, clique réponse acceptée.