Formulario para modificar datos seleccionados no muestra el correcto

En vba de excel no en access ojo

Tengo un formulario que me permite buscar, eliminar y modificar datos

En un textbox se carga un numero relacionado a varios registros

Se pulsa un botón y después los datos aparecen dentro de un listbox

Con el comando buscar y eliminar no tengo problemas solo con el modificar se debería seleccionar el registro deseado después pulsar el botón de modificar que abre a otro formulario con los datos del registro pero no me funciona bien si selecciono el primer registro funciona pero si selecciono el segundo solo me muestra los datos del primero.

Este el el código que utilizo:

'Activar la celda del registro elegido
Private Sub ListBox1_Click()
Application.ScreenUpdating = False
Range("A2").Activate
Cuenta = Me.ListBox1.ListCount
Set rango = Range("A1").CurrentRegion
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) Then
Valor = Me.ListBox1.List(i)
rango.Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate
End If
Next i
Application.ScreenUpdating = True
End Sub

Lo que quiero es que me muestre solo los datos del registro seleccionado por que solo me muestra los datos del primer registro aunque no este seleccionado

Necesito ayuda en verdad les agradecería mucho sus aportaciones

1 respuesta

Respuesta
1

Implementa esta instrucción en el evento Clic de tu Listbox:

Private Sub ListBox1_Click()
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            Set busco = ActiveSheet.Range("a:a").Find(Me.ListBox1, LookIn:=xlValues, LookAt:=xlWhole)
        If Not busco Is Nothing Then
            busco.Select
        End If
    End If
    Next
End Sub

Si es lo que necesitas, no olvides calificar...saludos.

amigo no me funciona que tal si me das tu correo y te mando mi archivo creo que no me supe explicar bien

OK, envialo a [email protected] con tu nombre y el tema de tu consulta.

Enviado amigo te agradecería mucho si le echas un vitazo a mi código

Ya te envié el archivo modificado, te adjunto la macro actualizada:

'Agrega esto a tu botón filtrar:
Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
On Error GoTo Errores
If Me.txtFiltro1.Value = "" Then Exit Sub
Me.ListBox1.Clear
j = 1
Filas = Range("a1").CurrentRegion.Rows.Count
For i = 2 To Filas
'Agrega una columna "A" que inicie en 1 en tu hoja "VALES"  y modifica el
'.Offset(0, 0) por .Offset(0, 1)
    If LCase(Cells(i, j).Offset(0, 1).Value) Like "*" & LCase(Me.txtFiltro1.Value) & "*" Then
        Me.ListBox1.AddItem Cells(i, j)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, j).Offset(0, 1)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, j).Offset(0, 2)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, j).Offset(0, 3)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, j).Offset(0, 4)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, j).Offset(0, 5)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Cells(i, j).Offset(0, 6)
    Else
    End If
Next i
Exit Sub
Errores:
MsgBox "No se encuentra.", vbExclamation, "MENU VALES"
Application.ScreenUpdating = True
End Sub
'Implementa este codigo en el evento Clic de tu listbox
Private Sub ListBox1_Click()
    Range("a2").Activate
    Cuenta = Me.ListBox1.ListCount
    Set rango = Range("A1").CurrentRegion
    For i = 0 To Cuenta - 1
        If Me.ListBox1.Selected(i) Then
            Valor = Me.ListBox1.List(i)
            rango.Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate
        End If
    Next i
End Sub

No olvides calificar...Exitos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas