VBA Excel: Ajout de données dans un fichier .csv
Aurélia
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dispose de fichiers au format .csv que j'ouvre avec Excel 2010 et qui s'affichent correctement, sans que les séparateurs n'apparaissent.
Tels qu'ils s'affichent dans Excel, j'aimerais, par une macro, pouvoir:
- insérer une colonne en D,
- l'intituler "Traitement" en D5,
- de D6 à la dernière ligne du tableau (nombre de lignes variable), coller la valeur contenue en B1.
Et ce, sans modifier l'extension du fichier (je parviens à le faire sur un fichier .xlsx mais pas sur un .csv); est-ce réalisable?
Je vous en remercie par avance!
Je dispose de fichiers au format .csv que j'ouvre avec Excel 2010 et qui s'affichent correctement, sans que les séparateurs n'apparaissent.
Tels qu'ils s'affichent dans Excel, j'aimerais, par une macro, pouvoir:
- insérer une colonne en D,
- l'intituler "Traitement" en D5,
- de D6 à la dernière ligne du tableau (nombre de lignes variable), coller la valeur contenue en B1.
Et ce, sans modifier l'extension du fichier (je parviens à le faire sur un fichier .xlsx mais pas sur un .csv); est-ce réalisable?
Je vous en remercie par avance!
1 réponse
-
Bonjour,
un exemple:
'votre code ouverture
'
Fichier = ActiveWorkbook.Name
Windows(Fichier).Activate
'derniere cellule non vide colonne A
derlig = Range("A" & Rows.Count).End(xlUp).Row
'insere colonne D
Columns("D:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D5").FormulaLocal = "Traitement"
'copie B1
Range("B1").Copy Range("D6:D" & derlig)
'sauvegarde csv
ActiveWorkbook.SaveAs Filename:="c:\DATA.csv", Local:=True
ActiveWorkbook.Close-
Bonjour,
Merci pour le code. En l'exécutant, la partie "Fichier = " sur la ligne 3 ressort en erreur avec le message "variable non définie".
De plus, en le lisant, je m'aperçois que j'ai manqué de précision dans ma demande: j'aimerais en effet pouvoir lancer la macro sans avoir à ouvrir les fichiers .csv qui se situent dans le même répertoire. Le code s'exécutera donc sur un fichier "texte" qui, me semble-t-il, ne devrait pas reconnaître les références de cellules: "B1", Columns("D:D"); mais je peux me tromper...
Merci d'avance! -
-
-
-
-