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 :

rechercher dans un tableau en fonction de la valeur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut rechercher dans un tableau en fonction de la valeur d'une cellule
    bonjour,

    je souhaiterais en fonction du texte contenu dans un cellule d'un première feuille, lancer une recherche dans un tableau (genre de listing) afin de trouver le texte contenu dans la cellule de la première feuille et ensuite récupérer le numéro de la ligne du listing qui contient ce texte....

    mes connaissances en visual basic étant limitées, j'aurais besoin d'aide
    merci a tous

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    regarder dans l'aide recherchev
    Elle est pas belle la vie ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    j'aimerais realiser ceci avec une macro...

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour,
    C'est un sujet tres vaste et tres souvent aborde ici, il faut un peu plus preciser tes besoins et contraintes:
    Ton "genre de listing" est une feuille excel ? Dans le meme classeur (fichier) ? Les valeurs sont toutes dans la meme colonne ? Quel type de valeur (Nombre reel, entier, chaine de caractere) ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    la valeur a chercher dans le listing, qui est une feuille excel du meme classeur, est une chaine de caractère, un nom plus précisement.

    Le but de cette macro serait d'aller rechercher le nom dans le listing (tjs dans la meme colonne) et de ressortir le numéro de la ligne ou il apparait...

    voila

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Par macro, ce probleme a deja ete traite des dizaines de fois (et je suis la que depuis 2 mois...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function TrouverLigne(NomATrouver as string, NoCol as integer) as long
    dim Ligne as Long
    Ligne = 1
    Do 
    If cells(Ligne, NoCol).value = NomATrouver then
    TrouverLigne = Ligne
    Exit do
    end if
    Ligne= ligne + 1
    Loop
    End Function

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    ne connaissant par trop les subtilité des modules fonction

    j'ai finalement créer une macro sous l'inspiration de tonton fred

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    sub chercher()
    dim num as variant
    num=6
    for k =1 to 6500
    if worksheets("feuil2").cells(num,6).value = worksheets("feuil1").cells(12,2).value then
     
    worksheets("feuil2").cells(1,1).value = num
    enf if
    num = num + 1
    next k
     
    end sub
    voili voualou

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Citation Envoyé par jefe.k
    ne connaissant par trop les subtilité des modules fonction
    Une fonction et une procedure sont exactement pareils a une chose pres: la fonction retourne une valeur. L'emploi est different mais generalement on peut utiliser l'un ou l'autre indifferement (l'un est simplement "plus court" que l'autre suivant la situation):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumeroLigne = TrouverLigne("Coucou",15)
    Ceci dit, il y a quelques petites ameliorations qui peuvent etre apportees a ta macro (pour celle la ca va, mais si tu veux faire un truc plus complexe tu vas t'y paumer si tu fais pareil )
    -num correspond a ton numero de ligne, donc il est inutile de le declarer en variant, Long suffit
    -si tu utilises une boucle for, il est inutile d'utiliser un deuxieme indice (a savoir num)

    Ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub chercher()
    dim num as Long
    for num = 6 to 6500
    if worksheets("feuil2").cells(num,6).value = worksheets("feuil1").cells(12,2).value then
    worksheets("feuil2").cells(1,1).value = num
    end if
    next num 
    end sub
    Cependant, bravo pour avoir fait ca tout seul

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    merci bien...

    probleme résolu...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/04/2016, 16h43
  2. Copier/coller lignes tableau en fonction de la valeur d'une cellule
    Par pheonix00fr dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/12/2014, 11h59
  3. Réponses: 0
    Dernier message: 03/06/2014, 14h16
  4. [XL-2010] Recherche dans un tableau en fonction de saisie
    Par akuma8 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/04/2013, 23h27
  5. [XL-2003] Macro pour rechercher une valeur en fonction de la valeur d'une cellule
    Par Rook93 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2013, 11h42

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