IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ouvrir un fichier .csv puis copier une plage de cellules? [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut Ouvrir un fichier .csv puis copier une plage de cellules?
    Bonjour :

    Je voudrais utiliser les codes pour ouvrir un fichier a.csv puis copier une plage de cellules.

    Mais d'après mon test, je ne sais pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("ExportStat_Campagne_Destinataires.csv").Close
    a réussi à fermer le fichier mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("ExportStat_Campagne_Destinataires.csv").Open
    n'arrive pas à l'ouvrir.

    Ensuite, pour la copie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Windows("ExportStat_Campagne_Destinataires.csv").Activate
        Activate.Sheets.Range("A1:B4").Select
        Selection.Copy
        Workbooks("data.xlsm").Sheets("Sarbacane Lien").Cells(1, 1).Paste
    Il ne renvoie pas d'erreur, mais il ne recopie pas non plus. Quelqu'un aurait une idée? Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Ajoute le chemin et chnge le Open de place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open "tout le chemin\ExportStat_Campagne_Destinataires.csv"

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    Merci. Cela fonctionne bien. Mais j'ai rencontré un problème du séparateur.

    Voici mon code pour recopier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
        Dim MyDocuments, strFileName, myToday, file, strConnection As String
     
        strConnection = "TEXT;" & "C:\Users\stg_pao\Desktop\ExportStat_Campagne_Destinataires.csv"
        With ActiveSheet.QueryTables.Add(Connection:= _
             strConnection, Destination:=Workbooks("data.xlsm").Sheets("Commerciaux").Range("$A$1"))
            .Name = "temp"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    Par exemple, dans une cellule du fichier original csv c'est écrit : "a,b,c" , après la copie dans mon classeur ça devient 3 cellules dans une même ligne : "a" "b" "c" .

  4. #4
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    Problème résolu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            .TextFileConsecutiveDelimiter = True
            .TextFileTabDelimiter = True

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier une plage de cellules dans un autre fichier
    Par Naoned005 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/04/2012, 17h02
  2. Copier une plage de cellule dans un autre fichier
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/04/2012, 21h31
  3. Copier une plage de cellules dans un fichier fermé
    Par COCONUT2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/07/2007, 17h23
  4. [VBA-E] Copier une plage de cellules avec critère
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 13/06/2006, 16h34
  5. [VBA] Copier une plage de cellules dans un fichier fermé
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo