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 :

Connexion avec des fichiers texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Novembre 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Novembre 2014
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Connexion avec des fichiers texte
    Bonjour,

    Je rencontre un sérieux problème.

    Je suis en train de construire un tableau de bord qui reprend des données de 4 fichiers *.txt externes. Pour se faire j'ai créé 4 connections au préalable sur 4 onglets différents (chaque onglet contient donc un tableau avec un nom unique) et je lance une mise à jour par VBA de ces connexions (chacune ayant un nom unique) avec le nouveau liens des fichiers *.TXT qui change chaque jour.

    Il m'arrive alors trois choses possible après avoir sauvegardé le fichier et lorsque je le ré-ouvre:
    - le fichier s'ouvre correctement et tout fonctionne
    - le fichier s'ouvre correctement mais lors de la mise à jour il ne retient pas les paramètres des connexions et certaines mises à jour de tableaux qui contenaient plusieurs colonnes sont maintenant importées en une seule colonne. Le code VBA suivant ne fonctionne donc plus correctement.
    - le fichier est corrompu à l'ouverture et toute les connexions sont perdues et je dois tout refaire.

    Je pensais créer les connexions directement lors de l'exécution de la macro de mise à jour du fichier en créant les onglets et les connexions en runtime pour que les paramètres soient bien pris en considération et lorsque la mise à jour est finalisée supprimer toutes les connexions et onglets ayant servi à la mise à jour. Cependant je n'arrive pas à créer une connexion qui génèrerai un tableau à nom unique sans faire apparaître l'assistant d'importation de fichier texte.

    Auriez-vous une idée? Je commence à désespérer...

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut



    Bonjour,

    l'assistant d'importation apparaît quand l'importation n'a pas été clairement définie dans le code …

    En activant l'Enregistreur de macros puis en effectuant la manipulation, le code est livré sur un plateau !


    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Novembre 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Novembre 2014
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Lorsque je fais l'enregistrement et que par la suite j'exécute la macro enregistrée, l'assistant continue d'apparaître. C'est comme s'il n'enregistrait pas tous les détails.

    Une idée?

    Merci pour ton aide Marc-L

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour ,
    Parles de fichiers Txt, ont ils sont un caractère de séparation?

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Citation Envoyé par stum32 Voir le message
    Une idée?
    Poster le code généré en le balisant via l'icône dédiée # et joindre un fichier texte source …

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Novembre 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Novembre 2014
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Bonjour ,
    Parles de fichiers Txt, ont ils sont un caractère de séparation?
    Bonjour,

    ce ne sont que plusieurs espaces que je fais reconnaître comme un séparateur moyennant l'option "interpréter des séparateurs identiques consécutifs comme uniques".

    A+

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'avoue être perplexe!
    Un fichier texte qui considère les doubles espace comme de séparateurs! Tu es sur que les champs ne sont pas de longueur fixe?

    Je rejoint Marc sur le sujet!

  8. #8
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Novembre 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Novembre 2014
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Poster le code généré en le balisant via l'icône dédiée # et joindre un fichier texte source …
    Voici le fichier excel ou la macro a été enregistrée:
    testimport.xlsm
    Et voici le fichier texte type à importer:
    test.txt

    Pour info la macro enregistrée est:

    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
    Sub Macro6()
    '
    ' Macro6 Macro
    '
     
    '
        Workbooks("testimport.xlsm").Connections.AddFromFile "C:\test.txt", True, False
        With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
            Connections("test"), Destination:=Range("$A$1")).TableObject
            .RowNumbers = False
            .PreserveFormatting = True
            .RefreshStyle = 1
            .AdjustColumnWidth = True
            .ListObject.DisplayName = "Tableau_test"
            .Refresh
        End With
        ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau_test").Sort.SortFields _
            .Clear
        ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau_test").Sort.SortFields _
            .Add Key:=Range("Tableau_test[[#All],[Colonne2]]"), SortOn:=xlSortOnValues _
            , Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau_test").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

    Merci pour l'aide!!

    A+

  9. #9
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    C'est un simple fichier texte au format fixe …

    Ce qui est gênant par contre est le manque de logique :

    Citation Envoyé par stum32 Voir le message
    […] avec le nouveau liens des fichiers *.TXT qui change chaque jour.
    A quoi bon enregistrer des connexions sur des noms de fichiers changeant chaque jour ?‼

    Autant ne pas enregistrer de connexion mais importer directement un fichier texte dans une feuille :

    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
    Sub ImportFixe(SRC$, Ws As Worksheet, Optional TRI As Boolean)
            If Dir(SRC) = "" Then Beep: Exit Sub
        With Ws
            .Cells(1).CurrentRegion.ClearContents
     
            With .QueryTables.Add("TEXT;" & SRC, .Cells(1))
                        .AdjustColumnWidth = False
                       .PreserveFormatting = True
                             .RefreshStyle = xlOverwriteCells
                        .TextFileParseType = xlFixedWidth
                         .TextFilePlatform = xlWindows
                  .TextFileColumnDataTypes = [{4,1,1,1,1,1,1}]
                .TextFileFixedColumnWidths = [{16,11,11,11,11,11}]
                .Refresh False:    .Delete
            End With
     
            If TRI Then .Cells(1).CurrentRegion.Sort .Cells(2), xlAscending, Header:=False
        End With
    End Sub

    Exemple d'importation d'un fichier texte dans la seconde feuille du classeur contenant le code :

    ImportFixe "D:\Tests4Noobs\test.txt", Feuil2

    Et en ajoutant à la fin de cette ligne , True un tri est effectué sur la deuxième colonne.

    _____________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2010, 21h33
  2. Generer des fichiers text avec un codage unix
    Par proDZ dans le forum Général Java
    Réponses: 10
    Dernier message: 04/09/2009, 13h23
  3. ouvrir fichier .txt dans excel avec des champs texte
    Par rom05 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/05/2008, 18h27
  4. connexion en asp avec des fichiers php
    Par bidule123456 dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2007, 15h44
  5. Réponses: 11
    Dernier message: 14/03/2007, 14h39

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