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 une valeur correspondant à la valeur selectionnée d'une ListBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 39
    Par défaut Rechercher une valeur correspondant à la valeur selectionnée d'une ListBox
    Bonjour,

    Lorsque je clic sur une valeur d'une liste, j'aimerais que la cellule de la Feuille contenant la valeur soit pointée directement, comme un Ctrl+F:

    J'ai essayé ca, en utilisant l'enregisteur de macro, mais ca ne marche pas... Pourriez-vous m'éclairer?

    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
    Private Sub ListBox1_Click()
    Dim y As Double
     
        For i = 0 To ListBox1.ListCount
        If ListBox1.Selected(i) = True Then
        ListBox1.Value = y
     
           Cells.Find(What:=y, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False).Activate
     
     
          End If
          Next
     
       End Sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    les données du listbox sont chargées depuis la feuille Excel à la base ?

    si tel est le cas, l'utilisation d'un Find pour la retrouver n'est pas forcément nécessaire.

    tu peux montrer la procédure qui charge la ListBox ?

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 708
    Par défaut
    Bonjour,

    Pourquoi ?
    A première vue, si tu veux rechercher la cellule contenant la valeur de ta listbox, tu devrais plutôt avoir:
    Et tu veux peut-être trouver la cellule correspondant exactement à cette valeur et non n'importe quelle cellule contenant cette valeur et peut-être autre chose. Dans ce cas:

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Par défaut Recherche...
    Bonjour,

    A mon avis, si tu changes ListBox1.Value = y en y = ListBox1.Value, celà devrait déjà mieux marcher !

    Sinon xlvalues me paraît plus adapté... si tu cherches une valeur numérique. xlWhole si tu cherches une valeur de texte ou de morceau de texte.

    Cordialement.

    PS : et peut pas besoin de boucle For.. Next, y = ListBox1.value peut surement faire l'affaire... sachant qu'à priori la liste n'est pas à choix multiple.

    Bruno

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour ZX12R
    le seul fait que son code montre une boucle laisse penser que la propriété multiselect du contrôle concerné est à True (ou alors que cette boucle est totalement superfétatoire).
    Mais il n'en précise rien. Et il ne précise d'ailleurs pas le reste non plus.

  6. #6
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut un exemple...
    Hello,

    Je te fais un exemple avec une listbox sur la feuille (données ciblées dans une feuille par la propriété listfillrange par exemple Feuil2!F2:F4) mais que tu as peut être ailleurs. J'ai repris ta recherche telle quelle et ça fonctionne mais je la lance par la methode listbox1_change() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ListBox1_Change()
    Cells.Find(What:=ListBox1.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate
     
    End Sub
    Nom : list.jpg
Affichages : 926
Taille : 37,4 Ko
    Peut être ajouter Feuil1.Cells.Find... si la feuille de recherche n'est pas la feuille active.

    Cordialement

    geogeo

Discussions similaires

  1. [Toutes versions] Recuperer la valeur de l'élément selectionné dans une liste déroulante
    Par camole88 dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/06/2019, 12h00
  2. [AC-2010] Renvoyer La valeur d'un champ calculé d'une requete dans un champ donné d'une table
    Par ThaHardy dans le forum Requêtes et SQL.
    Réponses: 21
    Dernier message: 13/07/2015, 16h40
  3. Réponses: 4
    Dernier message: 19/02/2014, 13h28
  4. [AC-97] Récupérer valeur affichée et valeur cachée d'un champ d'une combobox
    Par BornToBe dans le forum VBA Access
    Réponses: 7
    Dernier message: 08/05/2012, 15h06
  5. Réponses: 1
    Dernier message: 25/04/2006, 21h29

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