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 :

RechercheV sur un fichier TXT [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Points : 197
    Points
    197
    Par défaut RechercheV sur un fichier TXT
    Hello tout le monde,

    Lorsque j'effectue des extraction depuis l'AS400, le nom des en-têtes est incompréhensible par le commun des mortels

    Du coup je souhaiterais créer une Macro qui remplace les en-têtes par la description du champs.

    La description du champs se trouve dans un fichier TXT qui est constitué de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    LABEL ON COLUMN DOMFIL.FPHYCC01 
    ( 	NOCLPY TEXT IS 'N° Client Payeur' , 
    	TYMV TEXT IS 'Type de mouvement' , 
    	NOMV TEXT IS 'N° de mouvement' , 
    	DVMVT TEXT IS 'Devise du mvt' , 
    	DJMV TEXT IS 'Jour mouvement' , 
    	DMMV TEXT IS 'Mois mouvement' , 
    	DSMV TEXT IS 'Siècle mouvement' , 
    	DAMV TEXT IS 'Année mouvement' , 
    	CMVN TEXT IS 'Montant V.N' ,
    C'est ce qui se trouve entre les apostrophes que je veux récupérer.

    Mais attention, dans ce fichier il n'y a que les description des champs, y aussi plein d'autres infos sur les champs, donc faudrait faire une recherche de ce type :

    Si tu trouve le champs "NOCLPY", alors récupère ce qui est après "TEST IS".

    Merci par avance pour votre aide.

    Cordialement.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Bonjour,

    Est-ce que tu pourrais mettre ton fichier (ou une partie) en PJ ?

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Points : 197
    Points
    197
    Par défaut
    Voilà
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Avec la macro suivante, tu obtiens une variable tableau "Tabl". Le premier élément est le nom incompréhensible, le second est l'explication :

    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
    Sub test()
        Dim Tabl() As String, Fich As String, C As Range, Ctr As Long
        Dim Tabl1 As Variant, Tabl2 As Variant
        Fich = Application.GetOpenFilename("Text Files (*.txt), *.txt")
        Set sh = ActiveWorkbook
        Ctr = -1
        Workbooks.Open Fich
        Set sh = ActiveWorkbook.Sheets(1)
        With sh
        ReDim Tabl(.Cells(.Rows.Count, 2).End(xlUp).Row, 1)
            For Each C In .Range("B1", .Cells(.Rows.Count, 2).End(xlUp))
                If InStr(1, C.Value, "TEXT IS") > 0 Then
                    Ctr = Ctr + 1
                    Tabl1 = Split(C.Value, " TEXT IS ")
                    Tabl(Ctr, 0) = Tabl1(0)
                    Tabl2 = Split(Tabl1(1), "'")
                    Tabl(Ctr, 1) = Tabl2(1)
                End If
            Next C
        End With
    End Sub

  5. #5
    Membre habitué
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Points : 197
    Points
    197
    Par défaut
    Ça fonctionne parfaitement !!

    Merci

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

Discussions similaires

  1. Lecture et écriture sur un fichier txt
    Par freemanqc dans le forum Langage
    Réponses: 13
    Dernier message: 28/02/2008, 06h29
  2. Récuperer des infos sur des fichiers .txt
    Par arnogb69 dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/08/2007, 16h57
  3. Ecriture sur un fichier.txt dans tomcat
    Par xsafary dans le forum Java ME
    Réponses: 1
    Dernier message: 21/05/2007, 09h39
  4. [Tableaux] Problème sur ouverture fichier txt
    Par yaum4444 dans le forum Langage
    Réponses: 7
    Dernier message: 15/12/2006, 16h10
  5. Réponses: 2
    Dernier message: 10/05/2006, 21h10

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