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

Excel Discussion :

Import fichier texte - problème avec séparateur milliers [XL-2003]


Sujet :

Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 45
    Points : 47
    Points
    47
    Par défaut Import fichier texte - problème avec séparateur milliers
    Bonjour,

    Je peine à importer un fichier texte, extrait d'une tierce application, qui contient des colonnes, séparées par des tabulations.

    Le problème se pose pour les données de type montant.
    En effet, l'application ajoute un caractère pour séparer les milliers.
    Excel ne reconnait pas ce caractère et interprète le champ comme du texte.

    Impossible alors de réaliser des opérations dessus.

    L'astuce que j'ai trouvé consiste à rechercher et remplacer ce caractère par rien (ce caractère n'est pas un espace) avec le formulaire Rechercher/Remplacer.
    C'est pas ce qu'il y a de mieux pour un utilisateur "de base" (c'est pas péjoratif)

    Existe-t-il une astuce qui permettrait de faire cela, sans "bidouillage".

    Pour info, j'ai testé avec OpenOffice et là, l'import se fait sans aucun problème, OO "convertissant" ce caractère, ou du moins, sait que le champ est en réalité un nombre.
    Je précise à tout hasard que la solution ne peut être "utilisez OpenOffice"...

    Merci pour vos conseils,

    Nicolas

  2. #2
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    Peux-tu joindre ton fichier texte (ou un extrait) pour qu'on l'on puisse tester ?

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 45
    Points : 47
    Points
    47
    Par défaut
    Et voici

    Désolé pour le délai, je n'ai pas reçu le mail d'ajout de réponse alors que le suivi était bien sur Notification instantanée par email...
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    Au moment de la conversion il est possible d'indiquer à Excel quel est le séparateur de milliers. C'est un peu compliqué si cela est fait à la main car il faut copier le caractère en question (qui est le CODE(160)).
    Le mieux c'est de le faire par macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Convertir()
        Workbooks.OpenText Filename:= _
            "D:\BB\Bernadette avant restauration\Excel\test.txt", Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
            Array(3, 1), Array(4, 1), Array(5, 1)), ThousandsSeparator:=" ", _
            TrailingMinusNumbers:=True
    End Sub
    Pour réaliser la macro, copier d'abord le caractère de séparateur. Puis passer en enregistrement automatique.
    Ouvrir le fichier txt, A l'étape 3 de l'assistant importation de texte fichier, sélectionner la quatrième colonne, cliquer sur le bouton Avancé... et coller le caractère séparateur dans la zone séparateur de milliers. et terminer l'import. Arrêter l'enregistrement
    Ca marche chez moi.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 45
    Points : 47
    Points
    47
    Par défaut
    Ca fonctionne ici aussi !

    J'ai essayé d'importer avec un fichier comportant plus de colonnes et la conversion se fait correctement.
    Par contre, chose amusante (ou flippante selon), j'ai cela pour le séparateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThousandsSeparator:="*",
    Tu avais une "*"...

    EDIT : en fait, ça fait pareil, ce caractère a l'air d'être invisible lors de la saisie...

    Bizarre

    Je vais toutefois tenter de modifier la macro pour que l'utilisateur saisisse le nom du fichier à importer, ce sera plus souple que d'obliger à avoir un nom unique !

    Merci

    Nico

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/11/2012, 19h18
  2. Réponses: 3
    Dernier message: 17/07/2008, 21h59
  3. connexion ADO fichier texte, problème de séparateur
    Par laville dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 03/09/2007, 14h12
  4. Import fichier texte avec separateur milliers "."
    Par mgrsys dans le forum Access
    Réponses: 8
    Dernier message: 12/09/2006, 08h58
  5. probleme avec un import fichier texte dans mysql
    Par xodeax dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/07/2006, 13h24

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