VBA excel - Importation de .csv dans une feuille unique xls - VB/VBA/VBS - Programmation
Marsh Posté le 15-03-2014 à 14:38:46
Salut, voir http://cjoint.com/?3CpoIx2K8g7 cela se rapproche de ta demande à part que c'est pour la fusion de fichiers XLS ou TXT texte tabulé pas CSV , donc à toi de l'adapter à ton contexte
Marsh Posté le 15-03-2014 à 16:09:20
Merci, , semble bien fonctionner pour les .xls et les .txt...
Cela dit, je ne suis pas capable d'ouvrir le code, quand je vais voir dans les macros, il n'y a rien...
, et ça ne fonctionne pas pour les .csv...
Marsh Posté le 15-03-2014 à 16:10:39
De plus, il n'ouvre pas les sous répertoires... et c'est pas mal cette partie là que je ne sais pas comment faire..
Marsh Posté le 15-03-2014 à 17:11:26
Salut, il faut cocher "Recherche Récursive à partir du dossier Racine ?"
une partie du code est dans le module mLecture
bis repetita placent : c'est pour la fusion de fichiers XLS ou TXT texte tabulé pas CSV , donc à toi de l'adapter à ton contexte
Marsh Posté le 16-03-2014 à 16:18:24
re, le fichier pour fusion XLS et CSV http://cjoint.com/?DCwnzZuLGAj
Tu verras que les modifs à apporter au fichier initial étaient minimes
Marsh Posté le 14-03-2014 à 17:19:01
Bonjour,
J'ai peu d'expérience de programmation et celle que j'ai date.... J'ai besoin d'aide...
J'ai:
Un répertoire parent qui peut changer dans le future
Donc je veux positionner mon fichier source n'importe où sur mon disque dure, et il s'adaptera au dossier parent qui contiendra les données
Dans ce répertoire parent, j'ai N sous répertoire (pour chaque mois d'années des donnée que j'ai à importer...
Dans chacun des répertoire, j'ai des fichier .csv d'une seule feuille, avec ligne 1 toujours pareil, et les données à importé vont de la ligne 2 à infini... (un fichier par jour)
Dans le répertoire parent, à coté des sous répertoires,
J'ai créer un fichier "procédure.xls", où seront les instructions pour futures références, et dans lequel la macro sera...
Je veux créer un fichier destination nommé "compilation {date et heure}.xls", qui sera lui aussi dans le répertoire parent...
à date j'ai quelque chose qui ressemble à ça..
' Création du fichier compilé
Workbooks.Add
Range("A1" ).Select
ActiveCell.FormulaR1C1 = "Date de saisie"
Range("B1" ).Select
ActiveCell.FormulaR1C1 = "Date de contribution"
Range("C1" ).Select
ActiveCell.FormulaR1C1 = "Date de réception"
Range("D1" ).Select
ActiveCell.FormulaR1C1 = "No contribution"
Ainsi de suite jusqu'à ce que la ligne 1 (entête) du fichier destination.xls soit créé
Puis je sauvegarde le fichier avec cette commande:
ActiveWorkbook.SaveAs "Compilation " & Format(Now, "dd-MM-YY h-mm-ss" ) & ".xls"
Ce qui sauvegarde le nom de fichier correctement, mais ça le met dans le répertoire actif....
1- Comment je peux faire pour le mettre dans le répertoire parent?
Est ce que je suis obligé de saisir le chemin d'accès du fichier procédure.xls au début, et la garder dans une variable? Ou est ce qu'il y a de quoi de plus simple... ?
J'ai besoin d'aide par la suite pour remplir le fichier...
Je pensais faire la macro en saisissant toute les cellules du tableau, et en désélectionnant la ligne 1, mais ça ne fonctionne pas...
Bon..
2.1- J'ai besoin d'un while qui ouvre les sous répertoires un après l'autre....
à la fin de ce while, l'importation se termine
2.2 - à l'intérieur de ce while, un autre while qui lui ouvre tout les fichier csv un après l'autre
2.3 - Et à l'intérieur, un troisième while qui importe toutes les lignes une à une à partir de la ligne 2 du csv courant, vers la prochaine ligne vide du "compilation {date, heure} créé précédemment
Après j'ai de la mise en page à faire dans le fichier destination, mais ça je sais faire...