none
obtener el valor de la fila seleccionada RRS feed

  • Pregunta

  • Conforme al titulo, quiero obtener mediante código en visual basic el numero de la fila de un registro seleccionado en un ListBox, porque luego mediante "ListIndex" llamare los datos de esa fila a un formulario para modificarlos, tengo el siguiente codigo para activar la celda de registro seleccionado:

    Private Sub ListBox1_Click()

    items = Me.ListBox1.ListIndex + 3 'Remplazar el 3 por el numero de la fila seleccionada en el ListBox
    For i = 1 To 8
        Cells(items, 1).Activate
    Next i
    End Sub

    Como ven le sumo 3 al ListIndex para que active la 3era fila, pero yo quiero que active la fila del registro que elija. Espero haberme explicado, y gracias de antemano.

    • Cambiado Enrique M. Montejo martes, 31 de octubre de 2017 13:48 Programación con Excel mediante Visual Basic para Aplicaciones.
    viernes, 27 de octubre de 2017 15:36

Todas las respuestas

  • Hola,

    Para obtener el valor del índice seleccionado, utiliza:

    ListBox1.SelectedIndex

    en el caso le desees sumar algún número:

    CInt(ListBox1.SelectedIndex) + 3

    Como recomendación, recuerda que los índices empiezan en 0

    Saludos


    Brayan De la Cruz
    Lima - Perú

    viernes, 27 de octubre de 2017 16:17
  • Hola Cesar, no me queda claro si el registro de de un DGV y buscas mediante listbox su fila de ese DGV?
    viernes, 27 de octubre de 2017 16:18
  • Gracias por la respuesta amigo, pero me sigue dando error. Escribí el código así:

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

        items = Me.ListBox1.SelectedIndex + 3 'Remplazar el 3 por el numero de la fila seleccionada en el ListBox
    For i = 1 To 8
        Cells(items, 1).Activate
    Next i
    End Sub

    Solo como retro alimentación, lo que yo necesito es que al seleccionar un registro en el listbox (el cual es un listbox de búsqueda, osea que los registro que ahí se muestran no son traídos directamente de la hoja de excel mediante "ListBox1.RowSource = "Tabla1"", sino que son el resultado de una búsqueda por un criterio), la fila de ese listbox se active de manera que si yo quiero llamar datos a un formulario para modificar sean los de esa fila, o si quiero eliminar un fila sea la seleccionada. Graciass

    viernes, 27 de octubre de 2017 16:31
  • Pero fíjate que no estás convirtiendo el valor a entero, por ello es probable el error:

    items = CInt(Me.ListBox1.SelectedIndex) + 3 
    adicional a esto, items es int?, ya que es ahí en donde vas a guardar el valor.


    Brayan De la Cruz
    Lima - Perú

    viernes, 27 de octubre de 2017 16:34
  • Saludos Marcelo, no es un DGV, es un listbox normal, pero los registros que me salen corresponden aun criterio  en comun que yo ingreso en un texbox, como un apellido por ejemplo.
    viernes, 27 de octubre de 2017 16:36
  • Me arroja "error de compilación: no se encontró el método o el dato miembro" y me selecciona la parte del codigo "selectedindex"
    viernes, 27 de octubre de 2017 16:44
  • Seré curioso, César... ¿qué contiene el listbox, números de fila, 1 , 2, 3, 24, o qué? ¿Esto es vbnet, o es el lenguaje de excell (vba)?

    Digo, creo que entiendo la pregunta, pero no me queda claro el contenido del listbox....

    viernes, 27 de octubre de 2017 16:55
  • jajaja en la curiosidad esta la sabiduría amigo, es un listbox para filtrar registros de indumentaria, el numero de filas varia según la cantidad de registro que coincida con el criterio ingresado (apellido), y tiene 8 columnas que corresponden a fecha, dni, nombres y apellidos, indumentaria, estado, estatus y observación.

    Gracias de antemano  

    viernes, 27 de octubre de 2017 17:02
  • Cesar, como sugerencia para entender mejor la consulta, podrías por favór colocar una imagen de lo que es tu escenario? aun sea fabricada, una imagen vale mas que mil palabras

    Saludos

    viernes, 27 de octubre de 2017 19:23
  • Encontré un foro con una solución, pero ahora mi duda es como le hizo, y también si se puede usar el mismo código para eliminar la fila, porque ahora estoy intentando eliminar la fila seleccionada pero nada aun. 

    Private Sub ListBox1_Click()
    Range("A" & ListBox1.Column(8, ListBox1.ListIndex)).Select
    End Sub

    pdta: No puedo subir imagenes porque mi cuenta aun no esta validada, y aun no se como validarla. Gracias gente

    viernes, 27 de octubre de 2017 21:43