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 :

Temps de recherche d'informations


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut Temps de recherche d'informations
    Bonjour à tous,

    Grâce à beaucoup de discussions sur le forum, j'ai réussi a créer un fichier au format CSV. Ce fichier me sert de table de données pour alimenter un autre fichier excel.

    Pour retrouver les informations désirées, j'ai créé une boucle qui parcours une liste et je regarde dans mon fichier CSV a l'aide d'une boucle imbriquée.

    L'ennui est que mon fichier CSV est volumineux (6 Mo) et que la liste à renseigner est longue.

    Aussi, existe t-il un moyen, sous EXCEL, plus rapide que ma méthode?

    J'ai bien lu, dans certaines discussions, qu'il existait des requêtes (par QUERY je crois) mais je ne connais pas du tout.

    Peux t-on rechercher avec une fonction un texte spécifique dans un fichier texte comme on peut le réaliser par FIND dans EXCEL et si l'occurence retournée n'est pas bonne poursuivre la recherche?

    Merci à tous pour les réponses.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Tu vas être heureux: tu as effectivment l'équivalent de FIND en VBA, et son nom est... find!

    Tape find dans l'aide en ligne, et je pense que tu devrais pouvoir te débrouiller avec.

  3. #3
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonsoir,

    Je connais FIND bien sur, par contre l'objet de la question était comment l'utiliser en VBA pour chercher dans un fichier TXT au lieu de parcourir la totalité des lignes une à une.

    Suite à la question, j'ai continué à chercher une soluce.


    Dans ma question, je demandais une idée pour supprimer la boucle imbriquée car le fichier XLS que parcours la 1ere boucle (env 300 lignes) lance la recherche dans un fichier CSV qui contient env 100 000 lignes.

    Il ne faut pas être calé en maths pour comprendre que le temps de recherche sera long et en effet c'est long (env 5 H sur un vieux PC mais au boulot je n'ai que ça)

    La soluce que j'ai pensé a été d'inverser la recherche. En effet, je regarde dans le fichier CSV et par FIND je cherche la solution dans le fichier XLS.

    Le temps de traitement passe à environ 5 à 7 mn sur le même PC.

    Pour ceux qui peuvent en avoir besoin je pose le bout de code que j'ai écrit mais je suis preneur d'une piste qui peut répondre à ma sollicitation initiale.

    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
          'ouverture du fichier .csv
         vFichierCSV = "E:\DONNEES\COMMUN\Rel_appels\Table_Index.csv"
         'vFichierCSV = "E:\DONNEES\COMMUN\Relève appels\Table_Index.csv"
         Open vFichierCSV For Input As #1
         Do While Not EOF(1)
             Line Input #1, Texte
             Index = Empty
              On Error Resume Next
              Var = Split(Texte, ";")(6)
              'Var = "409002700118"
              Windows("MBAPEL.xls").Activate
              cells(1, 1).Select
     
              cells.Find(what:=(Var), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder _
              :=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
              reference = ActiveCell
              If reference <> "" And reference <> "SUB" And Split(Texte, ";")(0) = centre Then
                        Index = Split(Texte, ";")(7) & " " & Split(Texte, ";")(8) & "   " & Split(Texte, ";")(9) & " " & Split(Texte, ";")(10) & "   " & Split(Texte, ";")(11) & " " & Split(Texte, ";")(12)
                        Windows("MBAPEL.xls").Activate
                        If cells(1, 13) = "Observations" Then
                            ActiveCell.Offset(0, 11).Value = Index
                        Else: ActiveCell.Offset(0, 16).Value = Index
                        End If
              End If
         Loop
         Close #1
    Merci à ceux qui prendront du temps pour apporter une réponse.

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

Discussions similaires

  1. Recherche d'informations sur le projet kannel ?
    Par spynux dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 07/12/2011, 20h53
  2. [CA SuperDB] Recherche d'informations / archives
    Par hpcoder dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 08/06/2009, 11h02
  3. Recherche d'informations sur les scripts shell ?
    Par donny dans le forum Linux
    Réponses: 11
    Dernier message: 27/06/2006, 13h22
  4. Recherche d'informations sur Delphi 2006
    Par MarcP dans le forum EDI
    Réponses: 2
    Dernier message: 01/10/2005, 19h30
  5. [SOURCEMAGE] Recherche d'informations
    Par Blowih dans le forum Autres
    Réponses: 5
    Dernier message: 18/07/2004, 19h40

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