|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Bonjour à tous,
des macros déjà en place dans mon classeur excel me permettent de récupérer plusieurs fichiers textes, de réaliser différents calculs (soustraction de colonne, soustraction de ligne et dérivée première). Je souhaiterai ensuite récupérer dans un dossier "retraitement" récupérer chaque feuille de de calculs de la manière suivante (MAJUSCULE NOM DE DOSSIER, minuscule nom de fichier) : -RETRAITEMENT -SOUSTRACTION -soustraction fichier 1.txt = (feuille 2 colonne A et colonne B de la première ligne jusqu'à la première ligne vide) -soustraction fichier 2.txt = (feuille 2 colonne A et colonne C de la première ligne jusqu'à la première ligne vide) -soustraction fichier ....txt = (feuille 2 colonne A et colonne ... de la première ligne jusqu'à la première ligne vide) et ce jusqu'à la première colonne vide -NORMALISATION -normalisation fichier 1.txt = (feuille 3 colonne A et colonne B de la première ligne jusqu'à la première ligne vide) -normalisation fichier 2.txt = (feuille 3 colonne A et colonne C de la première ligne jusqu'à la première ligne vide) -normalisation fichier ....txt = (feuille 3 colonne A et colonne ... de la première ligne jusqu'à la première ligne vide) et ce jusqu'à la première colonne vide -DERIVEE -Dérivée fichier 1.txt = (feuille 4 colonne A et colonne B de la première ligne+1 jusqu'à la première ligne vide-1) -Dérivée fichier 2.txt = (feuille 4 colonne A et colonne C de la première ligne+1 jusqu'à la première ligne vide-1) -Dérivée fichier ....txt = (feuille 4 colonne A et colonne ... de la première ligne+1 jusqu'à la première ligne vide-1) et ce jusqu'à la première colonne vide Je n'ai aucune idée de la manière dont je dois m'y prendre merci beaucoup pour votre aide Cordialement Vincent |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
J'ai fait le boulot pour la soustraction, car je n'ai aucune idée pour calculer une normalisation ou une dérivée. Il te suffira de recopier le bloc de lignes compris entre : et et de mettre le bon calcul : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
En fait j'ai déjà des macros pour les différentes étapes :
Importation des données : Code :
Code :
En tout cas merci pour ta réponse |
||||
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Un peu au hasard, j'ai modifié la partie soustraction comme suit. Dis-moi si ça convient :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#5 |
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Merci Daniel,
(Je me permets de te tutoyer) Je vais regarder ce que ça donne. Par contre pourrais tu me décrire ta fonction (son fonctionnement (c'est à dire comment lui dire de prendre plusieurs colonnes : la colonne A et la colonne en cours séparées par une tabulation) En attendant je teste ton code Encore merci pour ta réponse et ton aide Cordialement Bon le principe semble fonctionner. Je m'explique : La macro crée bien les fichiers .txt dans le répertoire désiré, elle crée autant de fichier que j'ai de colonnes cependant il m'insère dans chaque fichier texte : -La colonne A (c'est normal c'est ce que je veux) -La colonne en cours (c'est cool c'est ce que je veux aussi) -Toutes les autres colonnes déjà traitées (par exemple le fichier 5 comporte la colonne A, B, C, D, E, F ; alors que je ne veux que la colonne A et F) De plus le chemin du fichier où sont sauvegardés les fichiers txt est indiqué directement dans la macro, comment faire pour dire à la macro de récupérer le chemin dans la cellule A1 de la feuille 1 ? Une idée dans l'adaptation du code ? |
|
|
00
|
|
|
#6 | |||||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Essaie comme ceci :
Code :
J'ai commenté le code comme tu l'as demandé : Code :
__________________
Cordialement. Daniel Citation:
|
|||||
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Merci beaucoup pour ton aide.
Alors j'ai très légèrement modifier ton code afin que ça fit avec mes données : Code :
Cependant un problème survient lors de l'enregistrement des fichiers : Il me sauvegarde dans le fichier txt les données de ma feuille qui me sert à lancer ma macro en plus des colonnes que je souhaite sauvegarder pourquoi (voir image pour mieux comprendre le problème ? Un autre problème il me sauve bien plusieurs fichiers mais ils sont tous identiques (c'est tout le temps la colonne A et la colonne B alors que je voudrais que le premier fichier soit la colonne A et la colonne B, le deuxième fichier A et C, le troisième fichier A et D et ainsi de suite ... |
||
|
|
00
|
|
|
#8 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
C'est sans doute explicable, cette histoire de données indésirables. J'ai posté mon code puis je l'ai modifié mais tu l'as récupéré avant modification. Je n'avais pas capté cette histoire de colonnes. Essasie :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Une question sur la ligne de code suivante :
Code :
ActiveWorkbook.SaveAs ws2.[A1] & "\soustraction fichier " & Col & ".txt", xlTextWindows Sheets("Macro").Range("E12").Value) Car lorsque j'effectue le remplacement en cours de route j'ai le bog : Erreur d'exécution "9": L'indice n'appartient pas à la sélection et la ligne de code Code :
ActiveWorkbook.SaveAs (Sheets("Macro").Range("E12").Value) & Col & ".dpt", xlTextWindows Je ne vois pas ce qui ne va pas ! En fait j'ai modifié le code de la manière suivante et cela fonctionne Code :
Bon après midi Cordialement Vincent |
||
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Ecris-le comme ceci :
Code :
ActiveWorkbook.SaveAs Sheets("Macro").Range("E12").Value & Col & ".dpt", xlTextWindows
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Cette solution ne fonctionne pas mais celle proposée précédemment marche du tonerre !
Code :
ActiveWorkbook.SaveAs ws0.[E12] & Col & ".dpt", xlTextWindows Cordialement Vincent En admettant qu'au lieu d'enregistrer en . txt, je souhaite sauvegarder en .csv chaque fichier comment dois je adapter mon texte. (J'ai observé que si je me contentais de mettre .csv au lieu de .txt les colonnes A et B de ma feuille active se retrouvaient dans la colonne A du fichier csv les deux données étant séparées par une tabulation. |
|
|
00
|
|
|
#12 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Mets "xlCSV" au lieu de "xlTextWindows" dans la ligne "saveas :
Code :
ActiveWorkbook.SaveAs ws0.[E12] & Col & ".dpt", xlCSV Et est-ce ce qui te convient ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Je regarde ça demain matin en détails (car ma macro tourne sous excel2003 (travail) et pas sous 2010 (PC perso) en tout cas un énorme merci.
Je te souhaite une excellente soirée Cordialement Vincent |
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
Bonjour,
En fait mon CSV ne correspond pas tout à fait à ce que je désire : Il me sauve bien la colonne A et la colonne "x" mais dans mon fichier csv ces deux colonnes sont "concaténer" dans la colonne A (la séparation est effectuée par une virgule). Je voudrais en fait lorsque j'ouvre mon fichier.csv que les deux colonnes sauvegardées soient respectivement dans les colonnes A et B de mon fichier csv. (Peut être n'est ce qu'une question de virgule ?) Cordialement Vincent |
|
|
00
|
|
|
#15 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Mets alors : Code :
ActiveWorkbook.SaveAs ws0.[E12] & Col & ".dpt", xlCSV, Local:=True
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#16 |
|
Membre régulier
![]() Vincent VincentInscription : octobre 2010 Messages : 242 ![]() |
C'est parfait !
Merci beaucoup Daniel Cordialement Vincent |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com