Modification fichier csv

Bonjour a tous,

Je vous explique mon soucis.
J’ai une machine qui me créer des fichiers sous forme csv (exemple fichier origine).
J’ai besoin de le convertir car au début la machine a créer des erreurs et faut que je le modifie manuellement.
Du coup je me retrouve avec le fichier (modifié)
Mon soucis est que la machine réécrit sur ce fichier (modifié) mais sous la forme comme a l’origine
Donc je me retrouve avec un fichier (combiné)

J voulais donc savoir si c’était possible de convertir le fichier modifié et le remettre comme a l’origine?

merci d’avance pour vos réponses
combiné.CSV (4,0 Ko)
modifié.CSV (2,6 Ko)
origine.CSV (2,4 Ko)

Bonjour

Ci-joint ma proposition
Onglet « modifié » mets toutes les données du fichier modifié.CSV
Onglet « origine » cliques sur le bouton « Traitement » situé en cellule « H2 »
Constates le résultat obtenu
Fais des essais et dis moi

Attention ce fichier fonctionne en VBA il faut avant son ouverture le débloquer raison de sécurité ainsi :
Clique droit dessus dernier choix dans la liste « Propriétés » puis dernier pavé « Sécurité » côche la case « Débloquer » puis « OK »

Fichier de type « .xlsm » indispensable au fonctionnement VBA à maintenir impérativement

modifié.xlsm (23,6 Ko)

1 « J'aime »

Super merci c est le résultat attendu

autre petite question en sachant que j ai plus de 200 fichiers y a pas moyen d’automatiser ca
exemple il va récupérer les fichiers dans un dossier les convertis et les sauvegarde ailleurs sous le même nom?

Sinon pas grave je le ferais manuellement

Merci pour ce retour
Pour les 200 fichiers tout à fait possible de les traiter de manière automatique
Il faut connaître l’adresse de leur repertoire et leur nom
Il est possible de lister ces 2 informations sur 2 colonnes afin que le traitement puisse pour chacun utiliser ces données indispensables
Reste dans le même esprit le répertoire et le nom d’enregistrement pour les fichiers obtenus qui sera à utiliser eux aussi à lister dans 2 colonnes supplémentaires

A toi de voir dans cet esprit ce que tu peux envisager et me dire

Alors j’ai pas tout compris.
je suis novice sur Excel, j’essai de me débrouiller un peu avec vba mais pas simple.
Tout ce qui est macro j’oubli.

ladresse du répertoire des fichiers source je le connais ( D:\tef\Nouveau dossier (2)\fichier final )
pour ce qui est du repertoire de sorti ( D:\fichiers modifiés )

Après je sais pas trop quoi te donner comme indication

merci encore

C’est déjà un bon début
Reste le nom de chaque fichier à traiter et le nom pour chacun du fichier généré par le traitement
L’idéal serait d’en faire une liste :
modifié1.csv devient modifié1corrigé.xlsx
modifié2.csv devient modifié2corrigé.xlsx
modifié3.csv devient modifié3corrigé.xlsx
.
.
.
.
modifié200.csv devient modifié200corrigé.xlsx

Et ce sur 2 colonnes (le premier dans une colonne le deuxième corrigée dans la deuxième colonne)

A toi de me préparer dans un onglet quelques noms sur 2 colonnes (tu peux utiliser l’onglet « origine » à partir de la colonne B)

merci mais te prends pas la tête ca va être trop compliqué.
Tout les fichiers portes des noms bien différent.

Je vais le faire a la main ca sera aussi rapide je pense

merci encore

Ci-joint un exemple en onglet « origine » colonne « M » à « P » pour 10 fichiers

A toi de voir

modifié.xlsm (24,4 Ko)

ou cette méthode en supposant que tous les fichiers CSV commencent avec « modifié »
Jeroen.xlsm (28,8 Ko)

merci pour vos réponses mais tous les noms sont différents donc je le ferais a la main

Sub Tous()
     s = Dir(ThisWorkbook.Path & "\*.csv")     'tous les fichiers "CSV" dans le dossier de ce fichier qui commencent avec "modifié"

     Do While s <> ""
          With Workbooks.Open(s)
               If Range("A7") Like "TRAM;BOOGI*" Then     '
                    Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, _
                                                 FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 3)), ThousandsSeparator:=",", DecimalSeparator:=".", TrailingMinusNumbers:=True
                  Set c = ThisWorkbook.Sheets("Jerome").Range("B" & Rows.Count).End(xlUp).Offset(1)
                    c.Offset(, -1).Value = s
                    .Sheets(1).UsedRange.Offset(7).Copy c
               End If
               .Close 0
          End With
          s = Dir
     Loop

ThisWorkbook.Sheets("Jerome").UsedRange.EntireColumn.AutoFit
End Sub

```première ligne = tous les fichiers CSV (n'importe leur nom) & quelque lignes plus loin A7 = "TRAM;BOUGI*"

Bonjour
Nouvelle proposition ci-jointe qui traite l’ensemble des fichiers modifiés sans obligation d’en établir la liste
Impératif il doivent être tous dans un même répertoire source sans aucun autre fichier
Seuls ces fichiers doivent être dans ce même répertoire

Onglet « origine » en cellule « M2 » l’adresse exacte de celui-ci et en cellule « N2 » celle des enregistrements des fichiers générés corrigés

Le traitement réalise pour chaque fichier celui à l’image de l’origine qu’il enregistre dans le répertoire cité en cellule « N2 » avec la mention « corrigé » ajouté à leur nom

Fais des tests et dis moi

Attention le temps d’exécution est tributaire du nombre de fichiers à traiter ainsi que du nombre de lignes dans chacun d’eux
Pour 200 fichiers il faudra peut-être de la patience
A voir

Fais moi un retour

modifié2.xlsm (27,3 Ko)

Bonjour,

Super je test ca de suite

Alors ca a l’air de fonctionner sauf que ca va chercher les fichiers dans le répertoire cellule N2 et ca les copie directement sur mon D:( c est pas grave ca je les deplacerait apres si il faut)

Du coup faut que je mette mes fichiers d’origine en cellule N2?

J’ai un autre soucis
une fois les les fichiers modifiés je traite tout les fichiers pour les compiler dans un seul tableau et la je me retrouve avec comme des hiéroglyphe alors que ca fonctionne quand je le fais avec ton premier fichier.

Tu dois bien alimenter les cellules « M2 » et « N2 » de l’onglet « origine »
« M2 » : l’adresse exacte du répertoire des fichiers à traiter
« N2 » : l’adresse exact du répertoire d’enregistrement des fichiers corrigés générés

Il faut m’en dire plus sur sur cette compilation que tu effectues
Les fichiers réalisés obtenus sont bien à l’identique des fichiers d’origine tu peux me confirmer
La seule différence par rapport à ma première solution que je t’ai réalisé n’est que l’enregistrement dans un répertoire de chacun d’eux
Dans ma proposition initiale aucun fichier n’est réalisé seule la conversion des données est le résultat du traitement que tu dois ensuite compiler dans ton tableau
Peux tu m’en dire plus le concernant et surtout la nature du fichier dans lequel il se trouve

Alors oui j’alimente bien les cellules.

Que je te réexplique tout la machine créer des fichiers ou j’avais eu des erreurs.
J’ai du tout reprendre manuellement en les convertissant ( de base le fichier est comme le fichier modifié en ligne )
je le convertit pour corriger les erreurs ( comme le fichier d’origine )
sauf que la machine réécrit a la suite du fichier de nouvelles lignes donc je peux pas le laisser convertit sinon ca bloque sur mon fichier final.

je te joint tout les fichiers pour que tu comprennes
Si tu as un D: met tout dans un nouveau dossier sauf le fichier final
tu vas vite comprendre

merci encore de ton aide
FICHIERS FINAL.xlsx (26,2 Ko)
fichiers modifiéscorrigé TR_1001_BO_bi029_ES_201977.xlsx (8,8 Ko)
modifié avec ton premier fichier TR_1001_BO_bi029_ES_201977.CSV (1,2 Ko)
origine_TR_1001_BO_bi029_ES_201977.CSV (1,4 Ko)

Qu’en est il de ma deuxième proposition ?
Ces derniers fichiers ne sont pas comparables car de nature différente
2 sont des « .CSV » 2 des « .xlsx »
Les fichiers CSV ont des données structurées séparées par des virgules ou pointvirgules
Les fichiers « .xlsx » ont des données structurées dans des cellules sous forme de tableur
Ils ne sont pas comparables
Pour réorganiser tes données pas d’autre choix que d’utiliser Excel et donc de realiser des fichiers sous ce format
Peut-être là la source de ta difficulté pour les compiler dans un tableau
Mais ta demande initiale concernait la mise en forme de l’ensemble de chaque ligne et non la compilation de celles-ci dans un tableau
Je regarde ce qu’il est possible en la matière

bah ton 2eme fichier me les transforme en .xlsx alors qu’avec le 1er comme je copie et colle il reste en .csv

peut être du a ca le changement.

sinon ou ton 2eme fichier fonctionne mais c est la compilation dans mon tableau final qui pose problème.

Comme je t’ai dit t’embête pas trop je vais le faire manuellement.

merci