Bonjour à Tous,
Ma première fois sur un forum, j'ai besoin d'aide, je n'en dors plus ou presque mais j'y passe beaucoup, beaucoup trop d'heures à tâtonner, à trouver un contournement, puis par être bloqué de nouveau plus loin .... Bref !
De manière récurrente, je télécharge des données publiques en .csv, imbuvables, et dois les mettre en forme, puis les analyser en rajoutant des formules assez simples. A chaque fois je perds énormément de temps dans tout ce traitement. Je souhaite donc l'automatiser. J'ai commencé plusieurs fois depuis 8 ans mais je n'en viens jamais à bout, j'abandonne, me recoltine chaque étape et puis ça me reprends a vouloir automatiser je repars de zéro car j'ai oublié...
Cette fois encore, je suis près de lâcher mais je lance cette bouée sur ce forum qui m'a déjà beaucoup aidé dans mes contournements !
Pour pouvoir partager cette manip a des personnes qui en connaissent encore moins que moi en Excel, j'essaie que tout soit le plus possible automatisé. Donc le maximum en macro.
Ma question est déjà très longue et j'ai pas encore expliqué mes limites... Désolé. Merci au courageux qui n'a pas encore lâché l'affaire !!!
Bien, pour résumer mon besoin :
Avoir un fichier Excel "Modèle" (que je puisse utiliser plusieurs fois en le renommant), pour mettre en forme des nouvelles données csv importées, intégrer des colonnes avec des formules. La mise ne forme et les formules restent toujours les mêmes.
Dans le détail :
1. J'importe des data en plusieurs fichiers .csv (entre 5 et 30) chacun comporte entre 1 et 10000 lignes. En générale sur 43 colonnes
2. Je les stocke dans un dossier
3. Je les combine dans un fichier Excel - avec Power Query (je viens de découvrir Génial ! Avant je copiais /collais chaque fichier .csv dans une seul fichier, barbant...)
4. Je mets en forme sommairement cette feuille ( qui contient donc les données sous forme de tableau) comme référence du téléchargement (feuille BRUT)
5. Je la duplique pour travailler les données (Feuille DVF)
6. Je fais des mises en formes, j'intervertis des colonnes, je transforme les données .csv comme les ".0", les "None, les "nan" en numériques ou en texte, en € en "m²"..., je remplace des données par d'autres, j'insère des colonnes pour donner des N° de lignes (en fonction du tri de date, du tri de la feuille BRUT), des colonnes de formules...
7. Et puis une mise en forme finale
8. Je n'en suis pas arrivé là mais j'aimerais pouvoir analyser ces données par des graphiques et tableaux croisés dynamiques.
L'idée est qu'une fois les fichiers .csv téléchargés, je n'ai que peu à intervenir et que tout se fasse en lançant une ou deux macros.
J'ai enregistré des macros, mais lorsque je les relance il y a une foultitude de bugs. Je corrige comme je peux, mais je rame.
Les problèmes principaux que je rencontre sont :
A. Dans VBA certains codes ne sont pas traduits. Il faut que je corrige manuellement, je n'ai rien trouvé à ce sujet sur le net . Ex : LIGNE au lieu de ROW
B. Etendre une formule vers le bas du tableau. des fois ça marche , des fois non
C. Transformer les futurs valeurs CSV en numérique. Remplacer ".0" par ",0". Des fois ça marche, des fois non... sans explication
D. VBA donne des noms au tableau (ex DVF_3) que je n'ai pas décidé. Et donc des fois la macro va marcher dans un fichier mais pas dans un autre parce que dans ce fichier le tableau aura reçu un autre nom...
E. etc....
Pour la transformation des valeurs csv, ça marchait bien avec Power Query, mais je n'arrive pas à enregistrer cette partie "requête" dans une macro
Pour les points A et B, je convertis le tableau en Plage de données mais mêm comme cela cela ne marche pas toujours. Et puis ensuite c'est dommage parce que dans mes formules je perds le nom des cellules et en plus je ne sais pas comment étendre les formules en bas du tableau
Ma grosse limite est la maitrise des outils Excel et du codage VBA que je ne connais quasi pas.
Ai-je bien fait de travailler sur un tableau de données (ca paraissait tellement génial d'avoir les différence de couleurs de ligne permanentes, d'avoir les filtres directement en tête de ligne, que les formules puissent s'étendre jusqu'en bas du tableau... ) ? Faut-il mieux passer par une plage ? Par une matrice ? ???
En pj je mets le fichier de données avec la feuille issue directement de l'importation via POwer Query (DataDVF), la feuille BRUT issue de la Macro (M01-0Prepa), la feuille DVF1 (avec la mise en forme partielle formules attendues), le script VBA actuel des Macros "M01_0Prepa" et M01_1PrepaBrut" et puis le descriptif partiel des étapes des macros.
A votre bon coeur Excelleurs, Merci de votre aide
Xavier