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 de donnees .csv d'un dossier a un tableur excel.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut Import de donnees .csv d'un dossier a un tableur excel.
    Bonjour, J'ai un dossier nome RK contenant un certain nombre de fichiers .csv ayant une seule Worksheet et dont les données sont séparées par des ";".J’ai besoin d’importer tous ces fichiers sur des onglets différents nommés comme leurs fichiers d’origine sur un même document Excel.

    Ci-dessous un code que j’ai trouvé en ligne légèrement modifié selon mes besoins. Quand je fais tourner la macro j’obtiens My_file = "" .comment devrais-je modifier le code. Merci pour votre aide.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Public Sub Load_text_Files()
     
    Const PATH = "C:\Users\Documents\RK"
     
    Dim My_Filenumber As Integer
    Dim My_File As String
    Dim My_Data As String
    Dim My_Array As Variant
    Dim WS As Worksheet
     
    My_File = Dir(PATH & "*.csv")
     
    If My_File = "" Then
        'MsgBox "No Files found matching " & PATH & My_Extension
        Exit Sub
    End If
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     'remove any worksheet in workbook except current worksheet
    For Each WS In ThisWorkbook.Worksheets
        If WS.Name <> ActiveSheet.Name Then
            WS.Delete
        End If
    Next
     
     'load each file
    While My_File <> ""
        AddSheetIfMissing (My_File)
        Worksheets(My_File).Activate
        My_Filenumber = FreeFile
        With ActiveSheet
            Open PATH & My_File For Input As #My_Filenumber
            While Not EOF(My_Filenumber)
                Line Input #My_Filenumber, My_Data
                My_Array = Split(My_Data, ";") 'split the string at every comma.... store result in any array
                .Range(Cells(.Range("A65536").End(xlUp).Row + 1, 1), Cells(.Range("A65536").End(xlUp).Row + 1, UBound(My_Array))) = My_Array 'output the array into each column
            Wend
            Close My_Filenumber
            My_File = Dir 'get next file
        End With
    Wend
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
     
    End Sub
     
     
    Function AddSheetIfMissing(Name As String) As Worksheet
     
    On Error Resume Next
    Set AddSheetIfMissing = ThisWorkbook.Worksheets(Name)
    If AddSheetIfMissing Is Nothing Then
        Set AddSheetIfMissing = ThisWorkbook.Worksheets.Add
        AddSheetIfMissing.Name = Name
    End If
     
    End Function

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    il manque déjà un \ à la fin de la constante PATH !

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut
    Je ne vois pas ou le placer j'ai essayer plusieurs locations en vain et n'ai obtenu que des messages d'erreur.

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const PATH = "C:\Users\Documents\RK\"

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut
    Le lien a ete copié, jai quand meme ajouté le \ manquant mais My_File="" donc la fonction se termine sans peupler mon document.

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Et bien aucun csv dans ce path

Discussions similaires

  1. [XL-2010] Macro importer des fichiers txt d'un dossier dans des fichiers excel
    Par ccadic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/04/2013, 10h21
  2. Importer les données d'un fichier csv dans une base de données
    Par Invité dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 08/06/2010, 13h54
  3. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 15h18
  4. Comment importer un document CSV dans une table MySql ?
    Par magic8392 dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/02/2005, 11h03
  5. importer des donnees dans interbase
    Par ms91fr dans le forum InterBase
    Réponses: 3
    Dernier message: 25/11/2002, 17h43

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