Colocarse en determinada fila de hoja para modificaciones

Para la respuesta del Sr. Dante, con mucho respeto.

En Hoja1 tengo:

A                     B                C           D  

Producto   Ingred.       Cant.    Medida

pastel        harina           1           kg 

pastel        azúcar        250        gr

torta           leche          500         ml  .......etc

En Userform1 tengo 4 botones CmdNuevo, CmdBuscar, CmdModificar CmdBorrar y 1 ListBox1

No tengo problemas con la codificación al guardar nuevo y buscar en hoja1 usando los 2 primeros botones, elijo un Prod (en combobox1) y click en botón CmdBuscar los Ingred, Cant y medida se muestran en el listbox1 del Userform1 luego selecciono un Ingred. Del listbox (tengo macro) y estos datos pasan a 3 textbox tambien en UF1, el problema es que hago las modificaciones en los textbox y click en botón Modificar y no hace las modif. En las celdas respectivas sino en otras, El problema es la ubicación en la fila respectiva, favor indicarme la correcta codificación en el listbox1_click para Modificar y Borrar en las celdas respectivas de la Hoja1. Uso Excel 2013.

1 Respuesta

Respuesta
1

H o l   a   : Tienes pendiente valorar esta respuesta:

Crear controles textbox en userform de acuerdo a ciertos registros.

Para saber la fila respectiva, como estás haciendo un filtro de las filas, es decir, cargas en el listbox solamente los datos que pertenecen al combo; es necesario cargar el número de fila en el mismo listbox al momento de llenar el listbox.

Por ejemplo:

Private Sub ComboBox1_Change()
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(i, "A") = ComboBox1 Then
        ListBox1.AddItem Cells(i, "A")
        ListBox1.lsit(ListBox1.ListCount - 1, 1) = Cells(i, "B")
        ListBox1.lsit(ListBox1.ListCount - 1, 2) = Cells(i, "C")
        ListBox1.lsit(ListBox1.ListCount - 1, 3) = Cells(i, "D")
        ListBox1.lsit(ListBox1.ListCount - 1, 4) = i 'aquí se carga el número de fila
    End If
Next
End Sub

De esa forma, cuando modifiques los datos de un registro del listbox, lees el número de fila, de esta forma.

Private Sub CommandButton2_Click()
    fila = ListBox1.List(ListBox1.ListIndex, 4)
    Cells(fila, "B") = TextBox2
    '... etc
End Sub

Si te fijas en la columna 4 del listbox cargué el número de fila, entonces para conocer el número de fila obtengo el número de fila de la fila marcada en el listbox y de la columna 4.

No olvides valorar las respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas