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 :

caractère séparateur sous excel VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut caractère séparateur sous excel VBA
    Bonjour tout le monde!!!

    J'ai un soucis!
    Je dois importer un fichier texte sous excel, mais le problème c'est que mon séparateur c'est ":" et pas ";", donc cu coup c'est mal délimiter.
    je vous montre le code:

    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
    With ActiveSheet.QueryTables.Add(Connection:= _
                "TEXT;" & Monchemin _
                , Destination:=Range("A1"))
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .TextFilePromptOnRefresh = False
                .TextFilePlatform = xlMSDOS
                .TextFileStartRow = 1
                .TextFileParseType = xlFixedWidth
                .TextFileTextQualifier = xlTextQualifierDoubleQuote          'ça ne fonctionne pas avec les ":"            
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = True
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = False
                .TextFileSpaceDelimiter = False
                .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
                , 1, 1, 1, 1, 1)
                .TextFileFixedColumnWidths = Array(3, 14, 32, 32, 5, 20, 10, 30, 9, 12, 8, 32, 5, 32, 2, 15, 1 _
                , 10, 1, 20, 10, 9)
                .TextFileTrailingMinusNumbers = True
                .Refresh BackgroundQuery:=False
            End With
    Une idée? j'ai repris la fonction d'un collègue il me semble qu'il a paramétrer la taille des colonne, m'enfin pas trop compris j'avou.

    Merciiiiiiiii à tous d'avance!

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    le DoubleQuote = ";" pour pouvoir délimiter par les ":" il faut utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Other:=True, OtherChar :=":"
    Si tu veux tu peux utiliser l'enregistreur de macro pour ce genre de truc, c'est facile.

    A+

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Pour moi il n'y a que 3 valeurs possibles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xlTextQualifierNone 
    xlTextQualifierDoubleQuote default. 
    xlTextQualifierSingleQuote
    Essai peut être avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .TextFileOtherDelimiter = ":"

    Edit : TextFileFixedColumnWidths permet en effet de définir pour chaque collonne dans un array la largeur de ces dernières.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Le plus simple est encore d'utiliser l'enregistreur de macro et de le faire une fois avec les paramètre que tu veux
    Et tu aura quelque chose que ressemble a ce que t'as donné Fvandermeulen il te suffira de l'adapter (tu as déjà un exemple ca devrais aller vite

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Re tout le monde!! et merci pour toutes ces réponses!

    alors j'ai tester ton truc aalex_38
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .TextFileOtherDelimiter = ":"
    ça me donne la même chose.

    Fvandermeulen, excel reconnai pas, il me dit qu'il y a une errezur en fait je ne vois pas trop comment l'inserrer dans le code.

    Et Krovax, je vois pas trop comment faire une macro? enfin si je sias comment on fiat une maccro, mais en gros ce que tu propose c'est de demander à excel d'enregistrer quand je lance ma fonction c'est ça? j'aii pas trop compris.

    HELP HELP! merci!

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    oui tu l'ance l'enregistreur de macro tu fait ton importation a la main (donnée/ données externe/importer des données) tu choisi tes option tu coupe l'enregistreur de macro. Puis tu va dans l'éditeur de macro pour voir le code. Il y a souvent quelque truc a modifier mais pour voir quoi tu as un code c'est un peu le jeu des 7 erreurs


    Un lien pour l'utilisation de l'éditeur et de l'enregistreur
    http://silkyroad.developpez.com/VBA/DebuterMacros/

    Au pire tu demande un cour rapide a ton collègue, a mon avis c'est comme cela qu'il a fait

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Merci Krovax, ça marche niquel maintenant!!
    voici le code pour ce que ça interresse:

    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
    With ActiveSheet.QueryTables.Add(Connection:= _
                "TEXT;" & Monchemin _
                , Destination:=Range("A1"))
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = ":"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            End With
    En fait c'est ce que tu m'avai dit aalex_8, mais jc pas j'avai du enlevé un truc ou quoi....

    Merci à tous et bonne journée!

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

Discussions similaires

  1. Affichage et retour arrière d'une ligne sous excel vba
    Par takata01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/06/2013, 12h26
  2. [XL-97] probleme d'impression sous Excel vba
    Par yosra_jemai dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/04/2013, 12h05
  3. [XL-2007] Formulaire sous excel/VBA
    Par columbus033 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/04/2009, 11h14
  4. masquer une liste déroulante sous Excel/VBA
    Par Krovax dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2008, 15h58
  5. [VBA-E]Execution d'une macro access sous excel VBA
    Par virtualinsanity dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 21/04/2006, 17h27

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