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 :

Workbooks.OpenText et espaces à droite des données?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut Workbooks.OpenText et espaces à droite des données?
    Bonjour,
    j'ai une macro qui utilise Workbooks.OpenText pour importer des données dans une feuille excel à partir d'un fichier texte.
    Mes données sont délimitées uniquement par rapport à leur position et non via un séparateur quelquonque.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Workbooks.OpenText Filename:=FileNamePath, Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(5, 2), Array(10, 2)), TrailingMinusNumbers:=True, Local:=True

    Ca marche plutôt bien à quelques exceptions près:
    Les espaces à droite de mes données sont supprimées dès qu'elles sont affichées sous excel.
    Par exemple, si entre la position 10 et 15 de mon fichier, il y a les valeurs
    " 5", alors dans ma cellule excel j'obtiens "5".
    Pour moi ce problème n'aurait pas du se poser car je spécifie pour chacun des champs qu'il s'agit du format "texte".

    Auriez vous des idées?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    c'est un interprétébug

    toi tu penses mettre du texte, Excel par défaut interprète ce qu'il peut en numérique....

    tu dois t'en rendre compte à l'alignement de la donnée par défaut à droite = numérique, à gauche = texte.

    essaies de formater tes cellules en texte avant d'importer les données.

    cordialement,

    Didier

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut
    Le problème est que Workbooks.OpenText importe les données dans un nouveau classeur qu'il crée à la volée...

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Un petit voyage dans l'aide
    Citation Envoyé par Aide VB
    FieldInfo Argument xlColumnDataType facultatif. Tableau contenant des informations de distribution pour des colonnes de données individuelles. L'interprétation dépend de la valeur de DataType. Lorsque les données sont séparées, cet argument est un tableau de tableaux à deux éléments, qui indiquent les options de conversion pour une colonne particulière. Le premier élément est le numéro de la colonne (base 1) et le deuxième élément est l'une des constantes XlColumnDataType indiquant comment la colonne est distribuée.
    array(1,2) peut être au lieu de array(0,2) puis décaler les autres en conséquence.
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonsoir,

    oui, essaies de jouer sur Ceci précisément :

    XlColumnDataType peut être l'une de ces constantes XlColumnDataType.
    • xlGeneralFormat Général xlTextFormat Texte
    • xlMDYFormat Format de date Mois-Jour-Année
    • xlDMYFormat Format de date Jour-Mois-Année
    • xlYMDFormat Format de date Année-Mois-Jour
    • xlMYDFormat Format de date Mois-Année-Jour
    • xlDYMFormat Format de date Jour-Année-Mois
    • xlYDMFormat Format de date Année-Jour-Mois
    • xlEMDFormat Date EMD
    • xlSkipColumn Non distribuée


    cordialement,

    Didier

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut
    Bonjour, merci pour vos commentaires
    @Ormonth: tous mes champs sont déja de type xlTextFormat (qui correspond à 2)
    @Qwazerty: il est effectivement plus "propre" de partir d'une base de 1, mais cela ne résout pas mon problème, il me semble que c'est bien excel qui supprime les espaces

Discussions similaires

  1. [MySQL] espace dans la colonne des données dans la bdd
    Par davidson81 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 27/09/2011, 15h17
  2. Remplir une bdd avec des données libre de droit
    Par wyzer dans le forum Débuter
    Réponses: 0
    Dernier message: 29/06/2011, 16h31
  3. Attribuer des droits en fonction des données
    Par Higgins dans le forum Administration
    Réponses: 3
    Dernier message: 28/05/2010, 15h44
  4. Copier des données d'un xls et coller dans le workbook
    Par baleiney dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/08/2009, 17h11
  5. Rechercher des données dans un autre workbook
    Par Azounet1529 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/07/2007, 08h26

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