[RESOLU] - concaténation de plusieurs fichiers csv dans un unique fichier global

alisso

XLDnaute Nouveau
Bonjour,

Ne sachant pas très bien développer les macros, je recherche sur internet les macros que les internautes ont réalisé pour répondre à mes besoins spécfiques.

J'avais présenté mon problème dans une discussion existante mais comme je n'ai pas eu de réponse, je pense qu'il est préférable de créer un nouveau sujet.

Je dois chaque mois concaténer dans un seul fichier, les X fichiers quotidiens (X allant de 28 à 31).
Les fichiers d'entrée sont au format csv.
J'ai récupéré la macro recap.xls de hulk (présente dans une discussion du 03/07/2013).
J'ai testé cette macro en ayant au préalable converti manuellement 2 fichiers d'entrée de csv en xls. La macro fonctionne parfaitement et la concaténation est ok.

Par contre en essayant de faire la concaténation directement avec les fichiers csv (dans la macro, j'ai juste modifier la référence des fichiers xl en cs afin qu'elle ouvre les fichiers csv), le résultat n'est pas correct car il doit y avoir un problème avec les caractères séparateurs "," et ";". Certaines des données d'entrée comportent également des ",".

Que faut il modifier dans cette macro pour qu'il traite direcetement les fichiers csv?

Comme il n'est pas possible d'insérer dans la discussion des fichiers csv, j'ai zippé 2 fichiers csv à titre d'exemple

Merci d'avance pour la résolution de ce problème
 

Pièces jointes

  • Fichiers csv.zip
    736 bytes · Affichages: 48
  • Fichiers csv.zip
    736 bytes · Affichages: 58
  • Fichiers csv.zip
    736 bytes · Affichages: 55
Dernière édition:

alisso

XLDnaute Nouveau
Re : concaténation de plusieurs fichiers csv dans un unique fichier global

Bonjour,

Avec la macro, j'ai en fait 2 problèmes distincts avec les fichiers csv en entrée.
Je joins la macro avec le résultat de la concaténation des 2 fichiers d'entrée que j'ai envoyés précédement.
C'est le fichier recap.xls
1er problème : pour chaque ligne, les données ne se retrouvent pas dans les bonnes colonnes suite à un problème de gestion des caractères ',' et ';'
2ème problème : ce fichier recap ne doit pas intégrer la dernière ligne de chaque fichier d'entrée. Cette dernière ligne ayant une seule cellule remplie qui fait la somme de la colonne E mais je n'en ai pas besoin pour les traitements que je dois ensuite effectuer.

Je joins également un second fichier nommé Recap avec fichiers xls en entrée.xls. Ce fichier présente le résultat que je souhaite obtenir. Il a été réalisé avec la conversion des fichiers xls en entrée.

Alain
 

Pièces jointes

  • Recap.xls
    53 KB · Affichages: 60
  • Recap.xls
    53 KB · Affichages: 62
  • Recap avec fichiers xls en entrée.xls
    51.5 KB · Affichages: 68
  • Recap.xls
    53 KB · Affichages: 61

Yaloo

XLDnaute Barbatruc
Re : concaténation de plusieurs fichiers csv dans un unique fichier global

Bonsoir alisso,

Vois avec le fichier ci-dessous, cela devrait le faire. Les codes de transformation des fichiers csv en txt doivent être de Staple (me semble-t-il :eek:, si je fais erreur que le propriétaire me pardonne ;) en tout cas merci à lui)

Mettre ce fichier dans le même répertoire que tes fichiers csv, puis cliquer sur le bouton.

A te relire

Martial
 

Pièces jointes

  • Recap.xls
    60.5 KB · Affichages: 76
  • Recap.xls
    60.5 KB · Affichages: 67
  • Recap.xls
    60.5 KB · Affichages: 76
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : concaténation de plusieurs fichiers csv dans un unique fichier global

Bonsoir Yaloo

Je ne suis propriétaire que de ma voiture, mon frigidaire, mon micro-ondes, ma brosse à dents, mon Laguiole, etc...
Le code VBA je le partage avec la communauté sans perception de loyer d'aucune sorte ;)
Mon Dieu! serai-je quelque peu communiste sur les bords de mes cellules?

PS: J'ai pas ouvert ta PJ, si ça se trouve le code qui s'y trouve ne vient pas de ma cabessa, ni de mes archives, ou de mes fréquentations "exceliennes".
Si c'est le cas, je te laisserai rendre à César ... ;)

EDITION: Bon bah finalement , c'est moi César mais il était pas communiste lui, non ?
La curiosité (ou était-ce un soubresaut de mon ego) a été la plus forte, alors j'ai ouvert le fichier ;)
 
Dernière édition:

alisso

XLDnaute Nouveau
Re : concaténation de plusieurs fichiers csv dans un unique fichier global

Bonjour,

Un grand merci à Yaloo pour sa macro qui répond exactement à mon besoin ainsi qu'à Staple qui est le bon samaritain pour la partie transformation des fichiers csv en txt.
La macro fonctionne dans mon environnement windows XP - excel 2002.
Je dois l'intégrer dans un environnement windows seven - excel 2007 ou 2010 (je ne me rappelle plus la config exacte) mais je pense qu'il ne devrait pas y avoir de problème.

Comme c'était ma première demande sur ce forum, je ne sais pas si je dois cloturer la discussion car mon problème est résolu et dans ce cas comment fais t'on?

Alain
 

Yaloo

XLDnaute Barbatruc
Re : concaténation de plusieurs fichiers csv dans un unique fichier global

Bonjour Alain,

Je teste les fichiers sur Seven et Excel 2010, donc ça devrait le faire.

Pour la résolution, il n'y a rien à faire de particulier, certains modifient le titre du premier post de la discussion en rajoutant [Résolu] avant ou après le titre initial, mais ce n'est pas une obligation.

A+
 

alisso

XLDnaute Nouveau
Re : [RESOLU] - concaténation de plusieurs fichiers csv dans un unique fichier global

Bonjour,

J'ai donc changé le titre pour indiquer RESOLU, cela me semble plus clair pour les participants au forum d'avoir cette info.

Merci également pour la vérification dans l'environnement windows seven - excel 2010.

De mon coté, je ne pourrais le vérifier que demain.

Alain
 

alisso

XLDnaute Nouveau
Re : [RESOLU] - concaténation de plusieurs fichiers csv dans un unique fichier global

Bonjour,

Je reviens sur le sujet car j'ai enfin pu tester la macro de yaloo dans un environnement windows XP - excel 2007.

Suite à la concaténation, dans la colonne A du fichier résultant, il y a des lignes qui ont la date au format correct et d’autres non.

Cela ne m'a pas perturbé pour les traitements que j'effectue car je m'occupe essentiellement des données des colonnes C à E.
Néanmoins, je me demandais d'ou venait cette mauvaise représentation de date.

Par exemple pour les tests que j’ai fait sur le mois d’octobre, les dates allant du 01/10/2013 au 12/10/2013 ne sont pas correctement représentées.

Le fichier résultat présente une date pour le 1er jour : 10/01/2013 (soit le 10 janvier 2013) alors que la bonne date est 01/10/2013. (1er octobre 2013)

La macro fait les traitements en 2 temps : passage csv -> txt puis txt ->csv.

Le premier traitement csv -> txt est correct, le fichier txt a le bon format.

C’est donc dans le second traitement qu’il y a une modification de format.

Je joins 2 fichiers d’entrée traités,

le premier du 01/10/2013 dont le format date n’est pas bon dans le fichier résultat

le second du 26/10/2013 dont le format date est correct dans le fichier résultat



Le fichier résultat joint Concaténation de fichiers csv.xls présente la concaténation réalisée sur l’ensemble des fichiers du mois d’octobre. C’est dans ce fichier que l’on peut voir le problème de date.



Si vous avez une explication sur ce point complémentaire à ma demande initiale.

Merci

Alain
 

Pièces jointes

  • AGAPE_TRANSACTIONS_IJ_20131001-csv.zip
    413 bytes · Affichages: 39
  • AGAPE_TRANSACTIONS_IJ_20131026-csv.zip
    405 bytes · Affichages: 38
  • Concaténation de fichiers csv.xls
    92 KB · Affichages: 52

Yaloo

XLDnaute Barbatruc
Re : [RESOLU] - concaténation de plusieurs fichiers csv dans un unique fichier global

Bonjour Alain,

Les dates et Excel, c'est une vraie galère, en fonction de la version d'Excel.
Sur le site de JB, celui-ci explique que les dates ont évoluées à partir de la version 2007. Il conseille une macro pour utiliser le bon format, voir l'exemple (pour un filtre élaboré) ci-dessous (à adapter bien sûr).

VB:
Private Sub CommandButton1_Click()
   If Val(Application.Version) >= 12 Then
     [G2] = ">=" & Format(TextBox1, "mm/dd/yyyy")
     [H2] = "<=" & Format(TextBox2, "mm/dd/yyyy")
   Else
     [G2] = ">=" & TextBox1
     [H2] = "<=" & TextBox2
   End If
   [A1:E1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[G1:H2], CopyToRange:=[G6:K6]
 End Sub

A+
 

alisso

XLDnaute Nouveau
Re : [RESOLU] - concaténation de plusieurs fichiers csv dans un unique fichier global

Merci Yaloo pour la réponse,

Il est vrai que j'ai toujours des problèmes avec les formats de dates et les changements d'heures dans différents fichiers et applications.

Pour le cas présent, cela ne m'a pas trop géné.

En allant sur le site de JB, j'ai vu qu'il y a plein d'infos (VBA, excel, formules...) sur différents sujets hors les dates. Cela m'aidera à comprendre un peu mieux les macros.

Merci

Alain
 

Discussions similaires

Statistiques des forums

Discussions
312 271
Messages
2 086 688
Membres
103 372
dernier inscrit
BibiCh