Problematique d'importation... (bon cas d'ecole) - VB/VBA/VBS - Programmation
Marsh Posté le 11-08-2006 à 12:04:08
beaucoup d'informations pas toujours compréhensibles tu peux nous faire des 1/ 2/ 3/, histoire qu'on sache les étapes par lesquelles ondoit t'aiguiller.
Marsh Posté le 11-08-2006 à 12:08:56
drizzt_fr a écrit : Hello, |
ben tes données, elles sont en CSV, là, non?
T'as essayé de l'ouvrir ton fichier txt dans excel pour voir ce qu'il faisait? En mode csv, il va te demander le caractère de séparation et puis zou, test données vont se mettre dans les colonnes.
Sinon, ben :
Ouvrir fichier xls servant à récupérer les données
pour chaque fichier à importer
ouvrir fichier à importer
Ligne = 0
tant que pas arrivé à fin de fichier
Ligne++
Lire ligne n°Ligne
Extraire chaque valeur située avant un ; dansnune variable de type string
Mettre chaque valeur dans la bonne colonne du fichier xls (en la castant si ça s'avère nécessaire)
Fin tant que
fermer fichier
fin pour
Fermer fichier xls
Grosso modo, c'est l'idée
Marsh Posté le 11-08-2006 à 01:10:46
Hello,
Récemment confronté à un input massif sur pas loin de 115 fichiers excel, il a semblé judicieux d'automatiser le process via VBA (Macros)...
Les données inputées dans les sheets sont des données figurant dans une base de données, mais aucun export de cette base dans un format type XLS ou CSV n'est actuellement envisageable pour des raisons que je n'enoncerai pas ici...
Toujours est il que nous disposons cependant d'un bon vieux fichier TXT avec séparateur contenant les valeurs que nous voulons implementer dans ces fameuses sheet.
L'automatisation devrait se derouler comme suit :
- DATA BOX : bouton permettant de démarrer le processus d'update qu'il soit manuel (1) ou auto(2).
1 - Manuel : des boites de dialogue apparaissent demandant d'entrer les valeurs a la date du jour et ce sur plusieurs colonnes.
2 - Auto : le processus met a jour automatiquement les données via une importation de fichiers txt et injecte cellule apres cellule les valeurs requises et préalablement ciblées.
Nous nous attacherons a la deuxieme partie, à savoir l'AUTO.
Soit un fichier txt dans C:\Temp\TOTO1234.txt
Dans ce fichier nous avons plusieurs lignes avec le header qui suit :
CodeTOTO;NomTOTO;DateBetiseTOTO;TypeBetise;;
Ensuite les données :
TOTO1234;Toto Armande Germaine;PPP;10-Juil-06;QQQ;C;RRR;
Plusieurs CodeTOTO différents sont présents
Le NomTOTO correspond au Code TOTO
Date BetiseTOTO biensur a la date mais elle peut varier
et enfin le type de betise A B ou C
Dans le fichier texte il y a des valeurs que nous n'injecterons pas... (PPP;QQQ;RRR etc...)
Toujours dans C:\Temp, nous avons différents fichiers nommés
TOTOXXXX - Nom TOTO.xls
Chaque valeur du fichier texte doit etre injectee dans chacun des fichiers et dans les cellules correspondantes.
Soit pour le fichier TOTO1234 - Toto Armande Germaine.xls
|....DATE.....|..CodeTOTO.|.............NomTOTO.............|.TypeBetise.|......|
|.10-Juil-06.|..TOTO1234.|..Toto Armande Germaine..|......C..........|......|
|.11-Juil-06.|..TOTO1234.|..Toto Armande Germaine..|......B..........|......|
|.12-Juil-06.|..TOTO1234.|..Toto Armande Germaine..|......C..........|......|
etc.....
Ben a l'attaque !!!!
Sachant que les valeurs peuvent etre numerique ou chaine de caractere.
Sachant qu'il y aplus d'une centaine de fichiers a mettre a jour et ce sur plusieurs dates...
Et enfin sachant que ce doit etre ergonomique pour l'utilisateur...
voilou... bon courage... moi j'ai pas encore trouvé la formule idéale mais comme le dit Baltazar, ca va venir !!!
N'hésitez pas a poster votre code suivant la maxime :
Si tu sais pas, demande; si tu sais, partage....