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 d'un .txt - Problème de gestion des guillemets [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 6
    Par défaut Import d'un .txt - Problème de gestion des guillemets
    Bonjour à tous

    Ci joint mon code me permettant d'importer en automatique des .txt dans une classeur Excel.
    Je n'arrive pas à enlever les guillemets contenus dans le .txt
    Du coup, dans Excel les données sont inexploitables et génèrent des calculs erronés : somme, moyenne ...

    Connaissez vous une solution pour ôter les guillemets ?

    Je voudrais éviter de modifier le .txt en .csv en passant par un import classique dans excel.

    Merci de votre aide.

    Bien cordialement.

    PS : un fichier .txt en pièce jointe
    PS 2 : le code ci dessous est crée avec la contribution des membres actifs de developpez.com que je remercie au passage...

    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
    Sub Import_Fichier()
     
    ' importe des fichiers texte en ouvrant une fenêtre
     
    Dim file As FileDialog
    Dim strLigne As String
    Dim str() As String
     
    Dim i As Integer
    Dim Ligne As Long
     
    'Choix du fichier à importer
    Set file = Application.FileDialog(msoFileDialogFilePicker)
    file.Filters.Clear
    file.Filters.Add "Fichier TXT", "*.txt"
    file.Title = "Fichier à importer"
     
    If file.Show = False Then
        Exit Sub
    End If
     
    Ligne = 2
     
    'Ouverture du fichier
    Open file.SelectedItems(1) For Input As #1
     
    'Boucle sur les lignes du fichier
    Do While Not EOF(1)
     
        Line Input #1, strLigne
        str() = Split(strLigne, ";") 'séparateur ;
     
        'Pour chaque colonne
        For i = 0 To UBound(str)
            Cells(Ligne, i + 1).Value = str(i)
        Next i
     
        Ligne = Ligne + 1
     
    Loop
     
    Close #1
     
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour, test ça
    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
    Sub Import_Fichier()
     
    ' importe des fichiers texte en ouvrant une fenêtre
     
    Dim file As FileDialog
    Dim strLigne As String
    Dim str() As String
     
    Dim i As Integer
    Dim Ligne As Long
     
    'Choix du fichier à importer
    Set file = Application.FileDialog(msoFileDialogFilePicker)
    file.Filters.Clear
    file.Filters.Add "Fichier TXT", "*.txt"
    file.Title = "Fichier à importer"
     
    If file.Show = False Then
        Exit Sub
    End If
     
    Ligne = 2
     
    'Ouverture du fichier
    Open file.SelectedItems(1) For Input As #1
     
    'Boucle sur les lignes du fichier
    Do While Not EOF(1)
     
        Line Input #1, strLigne
        str() = Split(strLigne, ";") 'séparateur ;
     
        'Pour chaque colonne
        For i = 0 To UBound(str)
            Cells(Ligne, i + 1).Value = replace("" & str(i),chr(34),"")
        Next i
     
        Ligne = Ligne + 1
     
    Loop
     
    Close #1
     
     
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 6
    Par défaut
    Ok merci beaucoup
    Cela fonctionne, plus de guillemet après Import

    Les valeurs ne sont toujours pas utilisables pour des calculs : exemple somme() = 0.
    Je vais gérer ça dans excel avec des formats de cellule et autre.

    Encore merci.

    Cdlt.

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

Discussions similaires

  1. Problème de gestion des exceptions
    Par Artasali dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/02/2007, 03h20
  2. Réponses: 3
    Dernier message: 18/01/2007, 16h25
  3. [SQL 2005] problèmes de gestion des chiffres décimaux
    Par skystef dans le forum Accès aux données
    Réponses: 1
    Dernier message: 10/01/2007, 11h40
  4. Problème de gestion des langues avec MFC
    Par Figaro dans le forum Visual C++
    Réponses: 4
    Dernier message: 20/11/2006, 15h56
  5. [FLASH 8] Problème de gestion des clips.
    Par glingo dans le forum Flash
    Réponses: 4
    Dernier message: 09/03/2006, 16h17

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