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

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 39
    Points : 29
    Points
    29
    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 éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    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 expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    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 : 667
    Points : 1 419
    Points
    1 419
    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 habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 102
    Points : 190
    Points
    190
    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
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    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.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #6
    Membre averti
    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
    Points : 442
    Points
    442
    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 : 869
Taille : 37,4 Ko
    Peut être ajouter Feuil1.Cells.Find... si la feuille de recherche n'est pas la feuille active.

    Cordialement

    geogeo

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 39
    Points : 29
    Points
    29
    Par défaut Un grand Merci
    Merci à tous pour vos réponses rapides.

    C'est vraiment sympa. Je suis débutant en VBA.
    Vos réponses m'ont aidé à mieux comprendre le fonctionnement de la recherche et cela marche bien.

    J'espère pouvoir rendre la pareille un jour!

    Bonne fin de week end à vous

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