Error en selección desde ListBox

Hola, soy novato en VBA. Tengo un listbox que se nutre datos que están cargados en una hoja. Me permite seleccionarlos y luego tengo botones que permiten borrarlos o editarlos.

Cuando selecciono y pretendo editar o borrar siempre me toma el primer registro de la hoja de excel y no el que selecciono. Uso Excel 2003. Por favor podrían revisar el código que adjunto para saber donde podría estar el error:

Private Sub ListBox1_Click()
'Activar la celda del registro elegido '

Range("a4").Activate

Cuenta = Me.ListBox1.ListCount

For i = 0 To Cuenta - 1

If Me.ListBox1.Selected(i) Then

Valor = Me.ListBox1.List(i)

On Error Resume Next

Sheets("Vtas_Dat").Range("A4:A504").Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate End If Next i
End Sub

Desde ya muchas gracias!!

1 Respuesta

Respuesta
1

Te mando mi solución. Utiliza mejor esta macro para hacer lo que quieres, es decir, posicionarnos en la celda del registro elegido.

Private Sub ListBox1_Click()
valor = ListBox1.Value
Set busca = Sheets("Vtas_Dat").Range("a4:a504").Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.address
msgbox "El dato está en la celda: " & ubica
range(ubica).select
End If
End Sub

no olvides finalizar la consulta

Muchas gracias experto, estoy probando de aplicar tu propuesta.

En este caso siempre me direcciona hacia A5, no importa el registro que seleccione. Habrá problema en la estructura de selección que adjunto (toma el dato a buscar en columna a de un txt box, entonces con un command button que tiene lo siguiente:

Private Sub CommandButton1_Click()
On Error GoTo Errores

If Me.TxtFiltro1.Value = "" Then Exit Sub

Me.ListBox1.Clear j = 1

For i = 1 To 500

If Cells(i, j).Offset(0, 0).Value = CDbl(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)

Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Cells(i, j).Offset(0, 7)

Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Cells(i, j).Offset(0, 8)

Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, j).Offset(0, 9)
Else

End If

Next i

Exit Sub

Errores: MsgBox "No se encuentra.", vbExclamation, "RAN 3"
End Sub

Nuevamente muchas gracias.

Muy bien, recuerda finalizar la pregunta. Se atiende una pregunta por cada vez.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas