Declarar una lista haciendo referencia a una columna de una tabla ubicada en una hoja "X" dentro del mismo libro de trabajo.

Hace poco tiempo empecé a usar macros mas que todo grabadas para trabajar pero últimamente mis procedimientos ya no se pueden simplemente grabar y me veo en la necesidad de investigar un poco más sobre el funcionamiento de las macros en excel, estuve viendo en Internet pero no encontré nada que me sirviera y luego vi que en este foro ayudas a mucha gente. Espero poder contar con la misma suerte. De Antemano gracias.

El asunto es que me bajé un código de un vídeo de YouTube y estuve lo modificando pero no encuentro la manera de declarar una lista haciendo referencia a una columna en específico de una tabla ubicada en otra hoja dentro del mismo libro que estoy trabajando mi macro.

La idea es la siguiente: en una hoja ("Hoja2") tengo un listado de gestiones, y en otra hoja ("Hoja1") tengo un listado de clientes con algunos datos importantes, estoy programando las macros en la "Hoja2" para que al ingresar un nombre en un TextBox de un UserForm me despliegue un ListBox dentro del mismo UserForm, con resultados que coincidan aunque no sean coincidencias exactas (por ejemplo, en el TextBox ingreso el nombre Luis y en el ListBox me pueda desplegar un listado con los clientes: Luis Fernando, José Luis, Juan Luis, etc., todos los que lleven incluida la palabra "Luis"), el problema es que no encuentro en Internet la manera de hacer la referencia a la tabla ubicada en otra hoja, lo intenté pero no me surtió efecto, adjunto el código y espero que puedas ayudarme

Private Sub TextBox1_Change()

If Me.TextBox1.Value = "" Or Me.TextBox1.Value = " " Then
Me.Height = 93

Else
Me.Height = 225
Dim rng As Range, e
Set Lista = Range(Sheets("BaseSERCCA").ListObjects("BaseSERCCA").ListColumns("NumInt")) **error**
With Me
.ListBox1.Clear

For Each i In Lista.Value
If (i <> "") * (i Like "*" & .TextBox1.Value & "*") Then
.ListBox1.AddItem i
End If
Next i

End With
End If
End Sub

1 respuesta

Respuesta
2

Te anexo el código actualizado

Private Sub TextBox1_Change()
'Act.Por.Dante Amor
    ListBox1.Clear
    If Me.TextBox1.Value = "" Or Me.TextBox1.Value = " " Then
        Me.Height = 93
    Else
        Me.Height = 225
        Set lista = Sheets("BaseSERCCA").ListObjects("BaseSERCCA").ListColumns("NumInt").Range
        For Each dato In lista
            If dato.Value Like "*" & TextBox1.Value & "*" Then
                ListBox1.AddItem dato.Value
            End If
        Next
    End If
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Te agradezco muchísimo tu ayuda Dante Amor, te prometo que busqué en internet y no encontré como hacer la bendita referencia a una tabla. Ahora quisiera que me pudieras ayudar, fíjate que en el mismo formulario donde tengo este textbox1 y listbox1 también tengo un textbox2 y su respectivo listbox2 pero al aplicar el mismo código al evento change del textbox2 me despliega unicamente el encabezado de la columna de la tabla que uso como referencia, ¿será qué estoy haciendo algo mal?

'2)Al escribir texto en el TextBox
Private Sub TextBox1_Change()
    If Me.TextBox1.Value = "" Or Me.TextBox1.Value = " " Then
        Me.Height = 93
    Else
        Me.Height = 225
        Set Lista = Sheets("BaseSERCCA").ListObjects("BaseSERCCA").ListColumns("NumInt").Range
        With Me
            .ListBox1.Clear
            For Each i In Lista.Value
                If (i <> "") * (i Like "*" & .TextBox1.Value & "*") Then
                    .ListBox1.AddItem i
                End If
            Next i
        End With
    End If
End Sub
'2.1)Al escribir texto en el TextBox2
Private Sub TextBox2_Change()
    If Me.TextBox2.Value = "" Or Me.TextBox2.Value = " " Then
        Me.Height = 93
    Else
        Me.Height = 225
        Set Lista2 = Sheets("BaseSERCCA").ListObjects("BaseSERCCA").ListColumns("nombrecomercial").Range
        With Me
            .ListBox2.Clear
            For Each i In Lista2.Value
                If (i <> "") * (i Like "*" & .TextBox2.Value & "*") Then
                    .ListBox2.AddItem i
                End If
            Next i
        End With
    End If
End Sub

Gracias porque me ayudaste ya a avanzar bastante y de antemano gracias por tu ayuda con esta segunda consulta. Saludos.

Tendría que revisar tus dato y el form para ver cuál es el problema

Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta en Todoexpertos.com dentro del tema de microsoft excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas