Buscar siguiente dato con botón en formulario excel

Para el Sr. Dante por favor :

En Hoja1 tengo 16 columnas con datos :

A                   B               C                  D                E           etc

Nombres    Club     Deporte1     deporte2     lugar     ......

Los nombres pueden repetirse con diferentes clubs, etc

En formulario UF1 tengo 1 combonom, txtclub, txtdepo1, txtdepo2, etc .

Tengo 3 botones cmdbusca1, cmdbuscasgte, cmdmodifica y 1 listbox1

Al escribir o elegir un nombre del combonom y hacer click en botón cmdbusca1 con set busca me ubica el primer dato que cumple lo solicitado y llena los textbox del UF1 y ademas me muestra en el listbox1 los datos de 9 columnas de la hoja (el máximo es 10 col.) lo que deseo es que en el otro botón cmdbuscasgte. Al hacer click me muestre el siguiente.dato del mismo nombre en los textbox y así sucesivamente yo elegir cualquiera de estos para poder modificar o actualizarlo con el botón cmdmodificar.

Yo hice bien el código para buscar y muestre el listbox y de allí seleccionar de este una fila del listbox y pasarlo a los textbox para modificarlo, pero el listbox tiene un máximo de 10 col y mis datos son más, es por esto que necesito el código para la búsqueda siguiente. Y llenar completamente todos los textbox agradeciéndote por la molestia. Tengo Excel 2013.

2 respuestas

Respuesta
1

En el botón buscar por esta macro

10 = sera la fila donde comienza tu base de datos

Deberás poner la misma cartidad de textbox que tienes de campos en el userform para que te cargue todos los datos en los textbox

Nombre de tu userform = aquí va el nombre de tu userfrom

Private Sub CommandButton3_Click()

fila = Me.ListBox1.ListIndex + 10
For i = 1 To 4
    Cells(fila, 1).Activate
Next i
For a = 1 To 16
   nombre de tu userform.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i).Value
Next a

end sub

y en boton modificar seria este

Private Sub CommandButton1_Click()
For i = 1 To 16
    ActiveCell.Offset(0, i).Value = Me.Controls("TextBox" & i).Value
Next i
End Sub

No olvide valor si te silve

Respuesta
1

 H o  l a :

Después de presionar Siguiente y quieres que llegue solamente al último nombre de la lista, utiliza este código:

Private Sub cmdbuscasgte_Click()
'Por.Dante Amor
    f = ActiveCell.Row
    Range("A" & f).Select
    For i = f + 1 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "A") = combonom Then
            Cells(i, "A").Select
            Exit For
        End If
    Next
End Sub

Pero si quieres presionar siguiente y al llegar al último nombre de la lista, quieres que empiece nuevamente, utiliza este código:

Private Sub cmdbuscasgte_Click()
'Por.Dante Amor
    f = ActiveCell.Row
    existe = False
    Range("A" & f).Select
    For i = f + 1 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "A") = combonom Then
            Cells(i, "A").Select
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        Set b = Columns("A").Find(combonom, lookat:=xlWhole)
        If Not b Is Nothing Then
            b.Select
        End If
    End If
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas