Atteindre une cellule en cliquant dans une listbox

Fermé
frax09 Messages postés 3 Date d'inscription dimanche 26 octobre 2014 Statut Membre Dernière intervention 13 novembre 2014 - 26 oct. 2014 à 06:21
frax09 Messages postés 3 Date d'inscription dimanche 26 octobre 2014 Statut Membre Dernière intervention 13 novembre 2014 - 8 nov. 2014 à 05:38
Bonjour,

A l'aide de plusieurs autres site j'ai réussi à intégré une zone de recherche dans une feuille exel qui me renvoie les cellules concordante dans une listbox ; j'aimerais a présent pourvoir cliqué sur une de ces réponse afin d'atteindre la cellules correspondante mais je ne sais pas comment faire.

J'ai trouvé la formule suivant mais je ne sais pas ou l'intégrer ( et je ne la comprend pas tout a fait) :
 With ListBox1
If .ListBox1 <> -1 Then Cells(.ListBox1 + 3, 2).Select
End With



Et voila mon code d'origine pour la recherche :


Option Compare Text

Private Sub TextBox1_Change()

Application.ScreenUpdating = False

Range("A2:A500").Interior.ColorIndex = 2
ListBox1.Clear


If TextBox1 <> "" Then
For ligne = 2 To 500
If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
Cells(ligne, 1).Interior.ColorIndex = 43
ListBox1.AddItem Cells(ligne, 1), (ActiveCell.Column = 1)
End If
Next
End If
End Sub


Merci d'avance et bonne journée

4 réponses

f894009 Messages postés 17221 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 4 janvier 2025 1 712
26 oct. 2014 à 07:39
Bonjour,


pas tout a fait ca
With ListBox1
If .ListBox1 <> -1 Then Cells(.ListBox1 + 3, 2).Select
End With


'code pour selection une cellule fonction de l'index de la listbox
Private Sub ListBox1_Click()
If ListBox1.ListIndex <> -1 Then
Cells(ListBox1.ListIndex + 3, 1).Select
End If
End Sub


Dans votre cas ce code ne convient pas, car vous remplissez la listbox1 avec des cellules qui ne sont pas forcement consecutives donc la valeur de listindex n'est pas appropriee.

un solution possible:

listbox1 a 2 colonnes, colonnes 1 valeurs des cellules correspondant a votre "filtre" et colonne 2 l'adresse des cellules prises en compte

sur clic d'une "ligne" de la listbox1, selectionner la cellule a l'adresse colonne 2 de cette "ligne" en utilisant listindex

info: listbox 10 colonnes maxi de 0 a 9
1
f894009 Messages postés 17221 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 4 janvier 2025 1 712
27 oct. 2014 à 08:50
Bonjour,

une facon de faire:

Private Sub TextBox1_Change()
ListBox1.Clear
ListBox1.ColumnCount = 2
'largeur colonne(s), mettre 0 pour cacher la colonne
ListBox1.ColumnWidths = "40,60"
'mise en memoire plage de cellule a tester pour recherche
Set c = Range("a:a").Find(Me.TextBox1.Value, LookIn:=xlValues)
'au moins une infos dans la plage
If Not c Is Nothing Then
premier = c.Address
i = 0
'remplissage listbox
Do
ListBox1.AddItem
ListBox1.List(i, 0) = c.Value
ListBox1.List(i, 1) = c.Address
'recherche suivante
Set c = Range("a:a").FindNext(c)
i = i + 1
Loop While Not c Is Nothing And c.Address <> premier
End If
End Sub
1
frax09 Messages postés 3 Date d'inscription dimanche 26 octobre 2014 Statut Membre Dernière intervention 13 novembre 2014
27 oct. 2014 à 04:51
Ok,

j'ai fait ça dans le but d'ajouter une colone a ma listbox mais il m'ajoute une ligne de plus par réponse,

Private Sub TextBox1_Change()

Application.ScreenUpdating = False

Range("A2:A500").Interior.ColorIndex = 2
ListBox1.Clear
ListBox1.ColumnCount = 2


If TextBox1 <> "" Then
For ligne = 2 To 500
If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
Cells(ligne, 1).Interior.ColorIndex = 43
ListBox1.AddItem Cells(ligne, 1)
ListBox1.AddItem Cells(ligne, 2)
End If
Next
End If
End Sub


de plus je n'ai pas trouver la formule permettant de récupérer l'adresse de la cellule correspondant à la réponse de ma recherche. (c'est pour ça que je n'ai mis que l'affichage de ma 2eme colonne a titre d'exemple)

sais tu ou je pourrai trouver une formule pour qu'un clic me renvoie a l'adresse sélectionné.

Désolé pour tout ces question mais j'ai beau faire des recherche, étant un programmeur du dimanche, les réponses que je trouve sont souvent trop complexes

Merci encore.
0
frax09 Messages postés 3 Date d'inscription dimanche 26 octobre 2014 Statut Membre Dernière intervention 13 novembre 2014
8 nov. 2014 à 05:38
Ok , ça marche, désolé pour la réponse tardive, j'avais pas trop le temps de m'en occuper.

Merci pour l'aide.
0