Macro buscar dato del textbox1 y el resultado cargarlo en un label

Como le hago para que una Macro buscar dato que le pido en el textbox1 y los resultados si son 5 agregarlo en el label 1, label2, label3, label4, label5, y así sucesivamente, tomando en cuenta que los resultados pueden ser 5 y quiero, que me cargue uno por uno y diferente label

1 respuesta

Respuesta
1

No pusiste en cuál hoja buscar, en qué columna buscar, qué resultado es el que se tienen que poner en los label.

Te anexo una macro, cambia "hoja1" por el nombre de tu hoja, cambia "A" por la columna en donde quieres buscar. Cambia b.value por el resultado que quieras poner en los label.

Cuando presionas un commandbutton, la macro busca el dato que pusiste en el textbox1 en la hoja1, columna A, si lo encuentra, pone el valor encontrado en el label1, busca otra vez, si lo encuentra lo pone el label2, y así hasta el label5, si tiene más de 5 aciertos, entonces deberás tener en tu formulario más de 5 label, si quieres que se detenga a los 5 aciertos avísame para poner una condición.

Agrega la siguiente macro a un commandbutton en tu formulario

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    Set r = h.Columns("A")
    Set b = r.Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        j = 1
        Do
            Me.Controls("Label" & j) = b.Value
            j = j + 1
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
End Sub

Hola Dante Amor , 

Quiero que me lo busque en la columna (I) Y si en cuentra que me ponga el resultado en de la columna (J) , Esto seria en al Hoja 1

El codigo que me enviaste cuando le pido que busque me arroja el mismo resultado que esta buscando por ejemplo 776 en los Label me pone 776 en todos

Como te comenté no pusiste qué datos son los que querías de resultado, por eso te puse lo mismo.

Te anexo la macro con la actualización.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    Set r = h.Columns("I")
    Set b = r.Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        j = 1
        Do
            Me.Controls("Label" & j) = Cells(b.Row, "J")
            j = j + 1
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
End Sub

Hola Dante gracias por la información es justo lo que necesitaba

Pero tengo una ultima pregunta y si quiero cargarlo en CommandButton en lugar de Label que tengo que cambiar

Gracias por tu ayuda

Antes de continuar con más preguntas, podrías valorar esta respuesta. Gracias

Al final de mi respuesta dice: “Es una buena respuesta” y puedes seleccionar una de 3 opciones:

  • Excelente
  • Si
  • No

Revisa si cambiando la palabra label por commandbutton te funciona.

No funciona pero gracias

Cambia esta línea

Me.Controls("Label" & j) = Cells(b.Row, "J")

Por esta

Me.Controls("CommandButton" & j).Caption = Cells(b.Row, "J")

La propiedad del commandbutton tiene que ser .caption

Hola Dante buen día , podrías ayudarme con algo , tengo unos números del rango a1:a50 y quiero que me los c

Hola Dante tengo unos números del rango a1:a50 pero Quiero que me los cargue del commandbutton1 a commandbutton50 del numero menor al mayor, lo único que tengo es números, esto lo ocupo para evitar hacer el filtro espero podrás ayudarme gracias

Con gusto te ayudo, crea una nueva pregunta en todoexpertos, en el tema de excel, si lo deseas en el título de la nueva pregunta escribe que va dirigida a Dante Amor, en la pregunta pon unas imágenes de lo que tienes y de lo que esperas como resultado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas