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 fichier csv en VBA [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Assistant de Direction
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Liban

    Informations professionnelles :
    Activité : Assistant de Direction
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut Import fichier csv en VBA
    Bonjour à tous,

    J'essaie d'importer en vba les données d'un fichier csv, mais au final les données importées sont toutes en vrac (alors que dans le fichier source csv les données sont biens réparties dans chaque cellule. j'ai essayé de redistribuer les données mais toutes ne le sont pas. avez-vous (surement) une solution à ce problème? j'ai trouvé quelques pistes sur le forum, mais je n'arrive pas à résoudre mon problème merci

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 415
    Par défaut
    Bonjour,

    Effectivement l'import de fichiers csv est un sujet récurrent. Aussi, joignez donc un exemple avec quelques lignes caractéristiques de votre fichier (sous forme compressée .zip) pour comprendre votre problème particulier.

    Cordialement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Assistant de Direction
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Liban

    Informations professionnelles :
    Activité : Assistant de Direction
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut IMPORT FICHIER CSV VBA
    Bonjour,

    En pièce jointe le fichier zip contenant les 2 fichiers (csv)que je souhaite importer dans un autre fichier (xlsb) . quand je tente d'importer le fichier csv, les données ne sont plus classées dans chacune des cellules 'alors qu'elles le sont dans le fichier csv initialement. j'ai rajouté ensuite un traitement des données bruts en vba, mais seulement une partie des colonnes sont correctement redistribuées. j'ai tenté plusieurs tests. par exemple lorsque j'ouvre le fichier et que je l'enregistre sous xls de façon classique, les données restent dans le même état. quand j'essaie de reproduire cela en vba, les données sont en crac.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 415
    Par défaut
    Bonjour,

    Un début de solution:
    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
    Option Explicit
     
    Sub Importer()
        Dim xFileDialog As FileDialog
        Set xFileDialog = Application.FileDialog(msoFileDialogFilePicker)
        xFileDialog.AllowMultiSelect = False
        xFileDialog.Title = "Sélectionner un fichier"
        If xFileDialog.Show = -1 Then
            ImportCSV xFileDialog.SelectedItems(1)
        End If
    End Sub
     
    Sub ImportCSV(sFileName As String)
        Dim ws As Worksheet
        Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))
        ws.Name = "Test" & Worksheets.Count + 1
        With ws.QueryTables.Add(Connection:="TEXT;" & sFileName, _
                                Destination:=Range("A1"))
            .Name = "Test" & Worksheets.Count + 1
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = xlWindows
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .Refresh BackgroundQuery:=False
        End With
    End Sub
    Cordialement.

  5. #5
    Membre confirmé
    Homme Profil pro
    Assistant de Direction
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Liban

    Informations professionnelles :
    Activité : Assistant de Direction
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut
    Merci beaucoup, cela fonctionne parfaitement, je vais pouvoir continuer le développement de mon fichier

    bonne soirée à vous

  6. #6
    Membre confirmé
    Homme Profil pro
    Assistant de Direction
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Liban

    Informations professionnelles :
    Activité : Assistant de Direction
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Un début de solution:
    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
    Option Explicit
     
    Sub Importer()
        Dim xFileDialog As FileDialog
        Set xFileDialog = Application.FileDialog(msoFileDialogFilePicker)
        xFileDialog.AllowMultiSelect = False
        xFileDialog.Title = "Sélectionner un fichier"
        If xFileDialog.Show = -1 Then
            ImportCSV xFileDialog.SelectedItems(1)
        End If
    End Sub
     
    Sub ImportCSV(sFileName As String)
        Dim ws As Worksheet
        Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))
        ws.Name = "Test" & Worksheets.Count + 1
        With ws.QueryTables.Add(Connection:="TEXT;" & sFileName, _
                                Destination:=Range("A1"))
            .Name = "Test" & Worksheets.Count + 1
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = xlWindows
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .Refresh BackgroundQuery:=False
        End With
    End Sub
    Cordialement.
    Bonsoir,

    Je rencontre un problème avec ce code lorsque j'essaie d'importer qui s'avere etre vide (je ne peux pas le savoir avant, sauf à l'ouvrir au préalable, ce que je ne souhaite pas pour plus de simplicité envers les utilisateurs)

    il y a t il une parade ?

    Merci de votre aide

    bien cordialement,

  7. #7
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 415
    Par défaut
    Bonjour,

    Peut-être ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    '...
        On Error Resume Next
        With ws.QueryTables.Add(Connection:="TEXT;" & sFileName, _
                                Destination:=Range("A1"))
    '...
    Vraiment pas le top, mais si cela suffit!
    Cordialement.

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

Discussions similaires

  1. [AC-2010] Importation Fichier.csv MS Excel vers Access en vba
    Par Dixies dans le forum IHM
    Réponses: 12
    Dernier message: 24/09/2014, 00h42
  2. [XL-2010] Importer fichier CSV vers MYSQL en VBA Excel
    Par 6116d dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/06/2014, 16h40
  3. Importation d'un fichier CSV en VBA
    Par Carlu dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/01/2011, 07h56
  4. [AC-2002] import fichiers CSV:code VBA NOK
    Par 19chacha75 dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/02/2010, 15h52
  5. VBA excel : piloter BdD access et y importer fichier CSV
    Par hnokia dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2007, 17h30

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