Copier/coller vers un fichier CSV

Bonjour à tous.

J'ai construit un fichier xlsm dans lequel je manipule et mets en forme des données, pour ensuite copier et coller (en valeurs) ces données mises en forme.

Pour cela, j'ai besoin d'ouvrir le fichier CSV en question (ça c'est bon), mais c'est le copier coller qui pose souci.

Mon code est le suivant:

' Ouverture du CSV
    Workbooks.Open ("C:\Users\8608197L\Desktop\POINTAGE\1-MOD_SISPO.csv")

' Copie des données de MOD
    Workbooks("0-Récup_données agents.xlsm").Sheets("Format_SISPO").Range("C1:H1000").Copy
    Workbooks("1-MOD_SISPO.csv").Paste

' Format des dates
    Workbooks("0-Récup_données agents.xlsm").Sheets("Format_SISPO").Range("F2").Copy
    Workbooks("1-MOD_SISPO.csv").Sheets("Export_SISPO").Range("D2:E1000").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

' Largeur des colonnes
    Columns("A:E").EntireColumn.AutoFit

' Enregistrement du CSV pour SISPO et fermeture
    Workbooks("1-MOD_SISPO.csv").Close

' Retour sur le classeur de départ
    Workbooks("0-Récup_données agents.xlsm").Activate
    Sheets("Format_SISPO").Activate
    

Mon programme s'arrête sur la ligne 5:

 
   Workbooks("1-MOD_SISPO.csv").Paste

Il me mets une erreur d’exécution 438 (Propriété ou méthode non gérée par cet objet)

Pouvez vous m'aider à trouver ce qui cloche ?

Merci par avance.

Cordialement,

Onafe57

Bonjour,

En général un CSV contient une feuille. Tu ne peux pas coller directement dans l'objet "Workbook", il faut que tu lui donne une feuille et un point de départ. Essayes avec :

Workbooks("1-MOD_SISPO.csv").Sheets("Export_SISPO").Range("A1").Paste

Bonjour.

Merci pour ta réponse.

Malheureusement, ça ne marche pas non plus.

Alors je suis parti d'un autre postulat ... J'ai décidé de recréer mon fichier CSV de toute pièce, dans lequel je fais bien un copier/coller (le même que dans la version que j'ai posté précédemment) ... et ça marche !

Mais il subsiste deux problèmes :

  • Dans mon fichier de destination, en CSV, les données sont toutes dans la premières colonnes, séparées par des virgules, alors qu'il me faudrait un CSV présenté sous forme de tableau, comme un excel normal. Je sais que c'est possible puisque j'ai déjà vu des CSV sous forme de tableau.
  • Deuxième problème : je copie colle des dates qui sont initialement au format JJ/MM/AAAA, mais après le copier/coller, elles sont au format anglais (M/J/AAAA).

Avez vous des solutions pour résoudre ces deux problèmes ?

Initialement, l'idée d'ouvrir un CSV déjà existant et au bon format dans lequel je n'aurais copier/coller que les valeurs voulues, devait me permettre les deux problèmes cités ci dessus, mais réutiliser un CSV existant pose problème a priori.

Merci.

Pour lire un fichier .CSV ou .TXT dans Excel lorsque toutes les données sont en colonne 1, il faut aller dans "Données" --> "Convertir". Exécute l'enregistreur de macro quand tu le fais et retravaille le code pour qu'il corresponde à ton besoin. Ca t'évitera de devoir recréer un CSV de toute pièce. Pour la date, tu peux aussi l'inscrire différemment en décomposant la date sous VBA avant de l'écrire dans une cellule (formules YEAR(), MONTH(), DAY()).

Rechercher des sujets similaires à "copier coller fichier csv"