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 :

Chercher un string dans un fichier texte [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut Chercher un string dans un fichier texte
    Bonjour,

    Sur une feuille excel (cellule B2), j'ai un mot (p.ex "bobo007").

    Sur mon PC, j'ai aussi un fichier texte (C:\log.txt) qui comprend des milliers de lignes.
    Une seule de ses lignes comprends le mot "bobo007" (p. ex "salut bobo007, ca va?")

    J'aimerai donc, via excel et VBA, créer une macro qui me cherche dans le fichier texte la ligne exacte (le plus rapidement, vu la taille de mon fichier texte),pour ensuite l'enregistrer dans une variable. Une sorte de Ctrl + F en gros..

    Pourriez-vous m'aiguiller ?
    Merci d'avance.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    A tester pour le temps d'exécution

    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
     
    Dim strLigne As String
     
    Open "C:\log.txt" For Input As #1
     
    Do While Not EOF(1)
     
        Line Input #1, strLigne
        If InStr(1, strLigne, "bobo007") > 0 Then
            MsgBox strLigne
        End If
     
    Loop
     
    Close #1

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut
    Merci pour ce code.
    Néanmoins, avec un "Do While Not", il n'arrête pas la boucle après avoir trouvé l'occurence. Sauriez-vous comment faire alors ?

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Comme cela

    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
    Dim strLigne As String
     
    Open "C:\log.txt" For Input As #1
     
    Do While Not EOF(1)
     
        Line Input #1, strLigne
        If InStr(1, strLigne, "bobo007") > 0 Then
            MsgBox strLigne
            Close #1
            Exit Sub
        End If
     
    Loop
     
    Close #1

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut
    Je n'avais pas pensé au "Exit Sub" ...

    Merci pour l'aide, et une excellente journée.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Un exit for aurait suffi, non? Il me semble qu'avec le exit sub, le fichier ouvert n'est pas fermé.

  7. #7
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Un exit for aurait suffi, non? Il me semble qu'avec le exit sub, le fichier ouvert n'est pas fermé.
    un Exit For dans un boucle Do While !!

    Le fichier est bien fermé via le close #1 avant de sortir

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    ooops, j'ai dit une connerie.

    Mais, pour le coup, on code 2 fois le close.... c'est ce genre de trucs qui me gène, je préfère rajouter un booleen pour sortir proprement. Question d'habitude, probablement.

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

Discussions similaires

  1. [WD12] Chercher les doublons dans un fichier texte
    Par matt1704 dans le forum WinDev
    Réponses: 17
    Dernier message: 11/06/2009, 08h31
  2. Comment chercher un mot dans un fichier texte et le modifier?
    Par Ange_1987 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/05/2009, 18h24
  3. chercher un caractère dans un fichier text
    Par stelaazurra dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/04/2009, 19h21
  4. Comment chercher une valeur dans un fichier text?
    Par lili81 dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/06/2008, 16h18
  5. écrire un String dans un fichier texte
    Par Flagada dans le forum C++Builder
    Réponses: 4
    Dernier message: 22/01/2007, 16h49

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