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   -
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!

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
    1. Aurélia
       
      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!
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      comme indique, "variable non définie" c'est que la variable fichier est non declaree

      je m'aperçois que j'ai manqué de précision dans ma demande Oui

      code s'exécutera donc sur un fichier "texte" Pas forcement, parce que la ce sera un peu capilotracte
      0
    3. Aurélia
       
      Re,

      Merci pour les réponses.
      Comment dois-je déclarer la variable fichier?

      Merci
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Dim Fichier tout simplement !!!!!
      0
    5. Aurélia
       
      Re,

      Merci bcp!
      Autre petite question: quelle modification apporter au code pour que le fichier reprenne son nom et son emplacement d'origine à l'enregistrement sans avoir à les préciser à chaque fois, et non "Data.csv"?

      Merci encore
      0