Como FIltrar Listbox con Textbox / Listbox

Tengo un excel donde cargo las cuotas de los alumnos de nuestra institución mediante userform. En el tengo 6 botones que representan los 6 cursos que ofrecemos, y al tocar alguno, me muestra los alumnos que asisten a dicho curso mediante un Listbox. Si hago doble click en algún alumno, automáticamente se cierra el listbox y me carga el nombre del alumno y el curso en los textbox del userform1.
Lo que necesito es que en el recuadro de la derecha me aparezcan los pagos que ha realizado el alumno cuando haga click en el nombre del mismo. Los mismos son registrados mediante el userform 1 y cargados en otra hoja.
Pero mis conocimientos llegaron a su limite ya que este excel lo baje de una página de internet y lo pude ir modificando a mis necesidades hasta este punto que ya no se como continuar.
Si alguien me da una mano, le estaré sumamente agradecido!

Desde ya muchas gracias !

1 respuesta

Respuesta
1

Yo lo tengo de la siguiente manera

Esta bueno, pero en mi caso necesito que me muestre en el listbox del lado todos los pagos que ha realizado la persona. Osea tendría que extraer los datos de las columnas así como están
Fecha -- Mes --- Importe

He podido lograr que el listbox me arroje los registros de la tabla que tengo, pero necesito que me los filtre según el textbox alumno. ¿Alguna idea?

En el evento change del un textbox

Puedes usar esta macro

Nombre de la hoja es donde pondrás el nombre de tu hoja

C:c es donde regitras los nombre

Private Sub TextBox1_Change()

ListBox1.Clear
valor = TextBox1.Value
Set busca = Sheets("nombre de la hoja").Range("c:c").Find(valor, LookIn:=xlValues, lookat:=xlPart)
If Not busca Is Nothing Then
ubica = busca.Address
Do
ubica2 = "$A$" & busca.Row
ListBox1.AddItem Range(ubica2)
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = Range(ubica2).Offset(0, 1)
ListBox1.List(i, 2) = Range(ubica2).Offset(0, 2)
ListBox1.List(i, 3) = Range(ubica2).Offset(0, 3)
ListBox1.List(i, 4) = Range(ubica2).Offset(0, 4)
Set busca = Sheets("el nombre de la hoja").Range("c:c").FindNext(busca)
Loop While Not busca Is Nothing And busca.Address <> ubica
End If

end sub

Esta macro a medida que vas escribiendo el nombre del alumno van apareciendo los registro

Unused RAM is wasted RAM

No olvide valor y sino pueder mándame el archivo para adatarsela

Te envíe al final el archivo por correo. No hay forma que lo haga andar con tu código. Me devuelve incluso los datos de otra hoja ja ja

No te olvides de valorar si te functional

¡Gracias! Te lo agradezco muchísimo !

Retoque un poco la estética del userform pero la función la cumple perfectamente !

Muchas gracias !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas