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 :

Recherche d'une valeur dans un txt depuis vba excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut Recherche d'une valeur dans un txt depuis vba excel
    Bonjour,

    Est-il possible de récupérer une valeur dans un fichier texte (txt)?
    Je souhaite récupérer la valeur qui est sur la 19ème ligne et qui est comprise entre les 14ème et 20ème caractère.

    J'ai fais quelques recherches et j'ai trouvé les fonctions instr et find, mais celles-ci fonctionne pour excel et acces, fonctionnent-elles également pour une recherche dans un fichier texte?

    D'avance merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    ouvre ton fichier avec Open ... For...

    Lis-le ligne par ligne avec Line Input

    (les exemples sur ce forum sont plus que foison)

    Utilise ensuite (sur les lignes qui t'intéressent) la fonction Mid

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    tu dois procéder autrement avec un fichier texte.

    Ouverture du fichier texte (input_file est le nom complet de ton fichier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Open Input_file For Input As #1
    lecture d'un record
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Line Input #1, LaLigne
    donc tu fais un boucle pour lire jusqu'au 19ème.

    récup des pos 14-20 du record :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeur = mid(laligne, 14, 7)
    fermeture du fichier texte
    Bonne chance.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Ok, j'ai réussi à récupérer ma valeur, par contre, maintenant ça boucle toujours dessus!!! Une fois qu'il a trouvé la valeur je voudrais bien qu'il sorte!

    Ok, j'ai résolu j'avais oublié de spécifier de sortir de la boucle!!!

    Merci à vous

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bon...

    Alors voilà une autre manière, maintenant :

    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
    Option Explicit
     
    Private Sub Command1_Click()
       Dim tonfichier As String
       tonfichier = "d:\essai.txt"
       MsgBox extraire(tonfichier, 19, 14, 20) 'où 19 est ta ligne, 14 et 20 les rangs des caractères de début et de fin
    End Sub
     
    Private Function extraire(fichier As String, ligne As Integer, cardebut As Integer, carfin As Integer) As String
     Dim ff As Integer, strtext As String
     ff = FreeFile
     Open fichier For Input As #ff
        strtext = Input(LOF(ff), #ff)
     Close #ff
     Dim toto
     toto = Split(strtext, vbCrLf)
     extraire = Mid(toto(ligne - 1), cardebut, carfin - 1)
    End Function
    Amuse-toi bien...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Je me suis emballé, j'ai testé en méthode pas à pas et tout fonctionne!

    Mais quand je lance en automatique, j'ai un message qui me dit que "erreur type 53, fichier introuvable", alors que mon fichier existe bien???

    Voici le bout de code qui pose problème
    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
     
    ' pour information metadonnées = le chemin de mon fichier
    Open metadonnees For Input As #1
     
    Do While Not EOF(1)
     
        Line Input #1, laligne
        position_pixel = InStr(1, laligne, "Pixel Size = (", vbTextCompare)
        If position_pixel > 0 Then
        T = Mid(laligne, position_pixel + 14, 7)
        MsgBox "Zone extraite = " & T
        Exit Do
        End If
     
    Loop
     
     
     
    Close #1
    d'avance merci

  7. #7
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Quand tu prends un debug, que vaut
    metadonnées = le chemin de mon fichier
    As-tu vérifié ? (nom complet du fcihier avec chemin et extension).
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Bonsoir,

    Metadonnees = le chemin de mon fichier.txt (avce l'extension).

    Ce que je ne comprends pas c'est que le debug apparait uniquement quand je lance le "prog" en automatique alors qu'en pas à pas (F8) tout se passe nickel!

    Cordialement

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    J'ai trouvé la solution!!

    Mon code s'executé un peu trop rapidement, donc j'ai fait temporiser 2 secondes entre la création de mon fichier txt et la recherche d'info dans ce même fichier est tout fonctionne!!
    J'ai utilisé la méthode wait
    Cordialement

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

Discussions similaires

  1. recherche d'une valeur dans un txt
    Par oliv27400 dans le forum MATLAB
    Réponses: 4
    Dernier message: 04/08/2010, 10h30
  2. [VB6]recherche d'une valeur dans une table access
    Par fahmichebaane dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/04/2006, 15h26
  3. [VBA] Recherche d'une valeur dans un autre fichiers puis
    Par Nicos77 dans le forum Général VBA
    Réponses: 11
    Dernier message: 24/03/2006, 11h24
  4. Réponses: 40
    Dernier message: 24/02/2006, 14h19
  5. [D6] Recherche d'une valeur dans un fichier
    Par Lung dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 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