Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

selection d'une cellule dont la valeur est inscrite dans une listbox

  • Initiateur de la discussion Initiateur de la discussion gilles72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gilles72

XLDnaute Junior
Bonjour,
depuis une listbox dans laquelle je selectionne une des valeurs, cette valeur va dans la cellule activée (activecell).
Plutot que de récupérer cette valeur dans la cellule active,
Je souhaiterais selectionner la cellule de la liste servant à alimenter la listbox (liste de 2900 lignes environ), ou bien la ligne elle même.
Je ne sais pas si je suis très clair
Merci de votre aide
Gilles72
 
Re : selection d'une cellule dont la valeur est inscrite dans une listbox

Bonjour Gilles, bonjour le forum,

C'est clair mais ça manque de détails. La ListBox se trouve où ? Onglet ou UserForm ?
Si elle se trouve sur l'onglet, elle a été générée avec quelle barre d'outils ? Boîte à outils Contrôle ou Formulaire ?
La liste qui alimente la ListBox se trouve dans quel onglet ?

Comme tu vois, un fichier exemple serait le bienvenu.
 
Re : selection d'une cellule dont la valeur est inscrite dans une listbox

Bonjour,

Robert🙂

Vois si cela te convient:
VB:
Sub ListBox1_Click()
    Dim Var
    Dim NumLg
    On Error Resume Next
    Dim c As Range
    'Var = InputBox(Prompt:="Taper la valeur recherchée. ")
    Var = Me.ListBox1
    Set c = Sheets("BD").Cells.Find(What:=(Var), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
    If Not c Is Nothing Then
        With Application
            .EnableEvents = False
            .Goto c
            .EnableEvents = True
        End With
    End If
 
    '///////////////////////////////// comprends pas l'utilité de ceci:
    With Application.Cells
        NumLg = .Row
    End With
    '/////////////////////////////////
    'ActiveCell.EntireRow.Select
    Cells.Offset(0, 1).Select
    Unload Me
End Sub

Comme tu as un gestionnaire évènement Selection_Change sur ta feuille. Si dans ton userForm tu active ou sélectionne une cellule de cette feuille, il sera relancé.->

Essaie de toujours spécifier sur quelle feuille s'applique les Cells et Range soit avec with...End With soit avec Sheets("NomFeuille").

A+
 
Re : selection d'une cellule dont la valeur est inscrite dans une listbox

Bonjour HASCO
Absolument NICKEL
Effectivement j'ai des lacunes sérieuses sur les basiques de Visual Basic!!
Merci à vous 2
bonne journée
 
Re : selection d'une cellule dont la valeur est inscrite dans une listbox

Bonjour Gilles, bonjour le forum,

Pour éviter le message d'erreur j'ai utilisé une variable publique booléenne test (dans le module Module1). Ensuite ce code dans le ListBox1_Click :
Code:
Sub ListBox1_Click()
test = True
Columns(1).Find(Me.ListBox1.Value, , xlFormulas, xlWhole).Select
test = False
Unload Me
End Sub
et cette ligne modifiée dans le code dans l'événement SelectionChange :
Code:
If test = False Then UserForm3.Show

[Édition]
Bonjour Hasco on s'est croisé
 

Pièces jointes

Re : selection d'une cellule dont la valeur est inscrite dans une listbox

Rebonjour ROBERT,
merci de ta pugnacité
Effectivement le code est simplifié
Une question de néophyte:
le fait de mettre une variable publique booléenne test (dans le module Module1).
ça joue en quoi, (si tu veux bien tolérer mon ignarité!!)?
 
Re : selection d'une cellule dont la valeur est inscrite dans une listbox

Bonjour le fil, bonjour le forum,

Le fait de déclarer la variale publique lui donne une portée sur tous les composants VBA. Aussi bien dans un composant onglet (Feuil1(Feuil1) par exemple), que dans une Userform, ou dans une procédure d'un module.
Comme dans ton cas elle servait autant dans l'UserForm que dans l'onglet (événement SelectionChange) nous n'avions pas le choix.
Je te recommande la lecture de cet excellent travail de Didier (MyDearFriend) ici.

Hasco, lui, a préféré éviter le message d'erreur de réouverture de l'UserForm avec la commande EnableEvents en lui attribuant la valeur False puis True. Au niveau de l'écriture du code c'est plus correct mais je n'aime pas ce procédé car si il y un bug avant que la valeur True ne soit réaffactée, les procédures événementielles (Change, SelectionChange, etc.) ne fonctionnent plus. Je préfère passer par une variable booléenne pour éviter cela.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…