Atteindre une cellule en cliquant dans une listbox

frax09 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
frax09 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  3. frax09 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  4. frax09 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    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