Modificar código para poner titulo a listbox

En el siguiente código necesito colocarle títulos y que cuando le doy doble click me pase los datos a un textbox, esto ultimo lo hace pero del a fila que esta anterior a la que lo doy doble click

Private Sub TextBox1_Change()
TextBox1.Text = UCase(TextBox1.Text) 'Convierte las letras en mayuscula
ListBox1.ColumnCount = 4 'numero de columnas
ListBox1.ColumnWidths = "75;65;120;30" 'asignando ancho de columnas
ListBox1.ColumnHeads = True
If OptionButton2.value = True Then 'buscar por Nombre
    Dim t As Long
    Dim i As Long
    t = Application.WorksheetFunction.CountA(Sheets("Maestro de Captaciones").Range("B:B"))
    ListBox1.Clear
    For i = 1 To t
    If InStr(1, Sheets("Maestro de Captaciones").Range("B" & i), Trim(TextBox1)) > 0 Then
        ListBox1.AddItem Sheets("Maestro de Captaciones").Range("A" & i)
        ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Maestro de Captaciones").Range("C" & i)
        ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("Maestro de Captaciones").Range("B" & i)
        ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("Maestro de Captaciones").Range("E" & i)
    End If
    Next
    Else
        If OptionButton1.value = True Then 'buscar por Cuenta
            t = Application.WorksheetFunction.CountA(Sheets("Maestro de Captaciones").Range("A:A"))
            ListBox1.Clear
            For i = 1 To t
            If InStr(1, UCase(Sheets("Maestro de Captaciones").Range("A" & i)), UCase(Trim(TextBox1))) > 0 Then
                ListBox1.AddItem Sheets("Maestro de Captaciones").Range("A" & i)
                ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Maestro de Captaciones").Range("C" & i)
                ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("Maestro de Captaciones").Range("B" & i)
                ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("Maestro de Captaciones").Range("E" & i)
            End If
            Next
        Else
             If OptionButton3.value = True Then 'buscar por cedula
                 t = Application.WorksheetFunction.CountA(Sheets("Maestro de Captaciones").Range("C:C"))
                 ListBox1.Clear
                 For i = 1 To t
                 If InStr(1, Sheets("Maestro de Captaciones").Range("C" & i), Trim(TextBox1)) > 0 Then
                     ListBox1.AddItem Sheets("Maestro de Captaciones").Range("A" & i)
                     ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Maestro de Captaciones").Range("C" & i)
                     ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("Maestro de Captaciones").Range("B" & i)
                     ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("Maestro de Captaciones").Range("E" & i)
                 End If
                 Next
             End If
         End If
    End If
End Sub

Este es codigo que carga el listbox y que utilizo para buscar el que necesito

1 respuesta

Respuesta
1

Tu código llena un listbox según lo que se ingresa en un TextBox... Lo que no queda claro es si necesitas una macro que al dar doble clic en algún elemento del Listbox te pase esa información al mismo Textbox? ... ¿Y cuál sería la columna a pasar al control txt?

Una sugerencia: no es lo más correcto asignar las propiedades a un listbox cada vez que haya un cambio en el textbox... ya que esas propiedades son siempre las mismas para todo el proceso.

Las propiedades se asignan al momento del diseño (desde la tabla de propiedades que te aparece en panel a la izquierda) o en todo caso en el evento Initialize del UF.

PD) Para conocer más de Userforms puedes ver el video 12 de mi canal:

https://www.youtube.com/playlist?list=PLrhlyizWZzOERwRMxIIy-BTP-CyXh_K5N 

Sdos y quedo a la espera de tus aclaraciones por el tema del control textbox.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas