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 :

Import csv to excel et traitement des colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1
    Par défaut Import csv to excel et traitement des colonnes
    Bonjour à tous,

    Je commence simplement le vba et ais reçu l´exercice suivant sur lequel je planche actuellement:

    Je souhaite importer automatiquement vers un unique fichier Excel un grand nombre de fichiers .csv (possédant tous la même structure) qui s'actualise quotidiennement (un fichier supplémentaire chaque jour).

    Avant de m'attaquer à l'automatisation, voici le résultat de mes recherches:
    Le code pour l'import des fichiers (qui fonctionne):

    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
    31
    32
    33
    34
    ub import_ordner_csv()
    Dim Wbcsv As Workbook
    Dim Temp As Workbook
    Dim Chemin As String, Fichier As String
    Dim LastLig As Long, NewLig As Long
    Dim C As Range
    Dim Tablo
    Const Sep As String = ";"
     
    Application.ScreenUpdating = False                       'Inhibe la mise à jour affichage
    'Chemin = ThisWorkbook.Path & "\"
    '                                   'Chemin du dossier où chercher les fichiers csv (Ici ce classeur se trouve dans ce même dossier, sinon on peut êcrire ici le chemin du dossier
    Chemin = "C:\Users\vthevenin\Desktop\Futures Analyse\0 - Daten\12_2012" & "\"
    Fichier = Dir(Chemin & "*.csv")                          'Le premier fichier csv trouvé
    Do While Fichier <> ""                                   'on fait une boucle jusqu'à ce qu'on ne trouve plus de fichier csv
     
          'On ouvre le fichier csv qu'on affecte à la variable Wbcsv    
     
       Set Wbcsv = Workbooks.Open(Chemin & Fichier)
     
                      With Wbcsv.Sheets(1)
          LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row     'LastLig est la dernière ligne remplie du fichier csv ouvert
       End With
       With ThisWorkbook.Worksheets("Tabelle1")
          For Each C In Wbcsv.Sheets(1).Range("A2:A" & LastLig)   'Pour chaque cellule de A2:Axxx
             NewLig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1   'la première cellule vide de la colonne 1 de Feuil1 de ce classeur
             Tablo = Split(C.Value, Sep)                        'On sépare les données par rapport au séparateur (ici le point virgule)
             .Range(.Cells(NewLig, 1), .Cells(NewLig, UBound(Tablo) + 1)).Value = Tablo   'on copie
          Next C
       End With
       Wbcsv.Close                                           'On ferme le fichier csv
       Fichier = Dir()                                       'on cherche le fichir csv suivant
    Loop                                                     'on reboucle
    End Sub
    Je souhaiterais insérer cette fonction OpenText suivante à la place de la ligne : Set Wbcsv = Workbooks.Open(Chemin & Fichier) pour formater mes colonnes au préalable. Mais je reçois une erreur lorsque jutilise cette fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Workbooks.OpenText Filename:= _
            Fichier, _
            Origin:=xlMSDOS, StartRow:=1, 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, 2), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 9), _
            Array(9, 1), Array(10, 9), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 9), Array(15 _
            , 9), Array(16, 9), Array(17, 1), Array(18, 1), Array(19, 9)), TrailingMinusNumbers:= _
            True
    Je vous remercie pour votre aide,

    Vincent

  2. #2
    Membre éprouvé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 46
    Par défaut
    Bonjour.

    Pouvez-vous, s'il vous plaît, nous donner l'erreur ... et les premières lignes du fichier csv en exemple.

Discussions similaires

  1. [AC-2007] Importation Excel et traitement des données
    Par tyrael5 dans le forum VBA Access
    Réponses: 11
    Dernier message: 13/07/2012, 15h28
  2. [MySQL] Importation de fichier texte avec traitement des caractères spéciaux
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/12/2009, 22h28
  3. traitement des colonnes dans un select
    Par dug dans le forum SQL
    Réponses: 5
    Dernier message: 26/02/2009, 22h13
  4. Import CSV sous Excel, garder les 0 inutile
    Par ePoX dans le forum Excel
    Réponses: 4
    Dernier message: 26/01/2009, 16h25
  5. [VBA Excel] Listbox, nom des colonnes et couleur des lignes
    Par Tutures dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 16h24

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