Vba excel importer et traiter CSV dans tableau puis enregistre s

Fermé
YAKA - Modifié par YAKA le 23/12/2016 à 15:28
 YAKA - 23 déc. 2016 à 20:07
Bonjour,

Je reçois un fichier csv. j'aimerai
1. le copier dans un tableau temporaire sans l'ouvrir à l'affichage
2. Faire plusieurs traitement
3. Copier le résultat dans un classeur xlsx.

J'arrive à ouvrir et enregister sous le fichier mais je n'arrive pas àle copier dans une table temporaire pour le travailler pour ensuite copier le resutlat dans un nouveau classeur.

Voici le détail de ce que je veux faire.
Voir le fichier en pièce jointele fichier CSV d'exemple.

L'utilisateur reçoit régulièrement par mail
un fichier CSV qui contient plus de 120 000 lignes. Le nombre de lignes est variables.
Le nombre de colonne actuel est de 40. Il doit extraire uniquement les lignes qu'il doit traiter.

1. L'utilisateur copie ce fichier dans un répertoire
2. Ensuite l'enregistre sous excel au format xlsx avec le préfixe TDB_
3. Il renomme l'onglet du fichier excel : "ALL"
4.Il rajoute colonne 41 "délai" calcule le délai entre date système - colonne J
5.Il rajoute une colonne 42 "intervalle". Il calcule en fonction de la colonne 41 les intervalles "1 à 5" ;" 6 à 20" ;"21 et +"
5bis .Il rajoute une colonne 43 "Litige à traiter". Calcul colonne 39 - colonne 40.
6. Il créé un onglet "Tableau de bord"
7. Il créé un onglet "MISSION"
8. Il créé un onglet "METIER"
9. Il créé un onglet "Suivi de facture"
10. Il créé un onglet "INTER"

11. Dans l'onglet "MISSION", Il copies les lignes qui dont la colonne B = "MISSION"
12. Dans l'onglet "METIER", Il copies les lignes qui dont la colonne B = "METIER"

13.Dans l'onglet "SUIVI", Il copies les lignes qui dont la colonne B = "Suivi de facture"
mais uniquement si
colonne 30 = "en cours de contrôle"
colonne 36 (litige) = "Ouvert" et colonne 43 > ou = zero
ou colonne 36 vide

15. Dans l'onglet "INTER", Il copies les lignes dont la colonne B = "INTER"
mais uniquement si
colonne 30 = "en cours de contrôle"
colonne 36 (litige) = "Ouvert" et colonne 43 > ou = zero
ou colonne 36 vide

17.Affichage des onglet avec mise en forme conditionnelle rouge si intervalle = 1 à 5 ; orange 6 à 20 ; vert 21 et plus

18.L'onglet tableau de bord affiche des camemberts pour les 4 onglets

20. msg fin de traitement
A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
23 déc. 2016 à 17:45
Bonjour

Regardes du coté de ADODB.Stream
0
Merci Patrice,
Merci pour ton msg.
j ai regardé ADODB.Stream mais pas compris comment ca marche. J ai copié des exemples mais pas réussi à les faire fonctionner.
Je ne suis pas un specialiste de vba et beaucoup de mal à personnaliser les bouts de code que je trouve en ligne.
0