Code qui aggrege des fichiers dans un gros fichiers

sunstephane Messages postés 7 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 27 juin 2006 - 18 juil. 2005 à 17:25
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 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.



Stéphane

3 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
18 juil. 2005 à 23:19
Bonsoir,

Reformule ta question, parce que là, c'est pas fort compréhensible.

Que veux tu dire par "ouvrir tous les fichiers" et les "aggreger ensemble" ??

jpleroisse
0
sunstephane Messages postés 7 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 27 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 .
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
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.
0