Corrección en macro Excel. ¿Por qué no elimina la fila seleccionada en el ListBox y si otra?
Para Dante Amor
Especialmente elimina de las primeras o 1ª línea, no la que se selecciona en el ListBox
Esta la macro del botón cbtEliminar en formulario
Private Sub cbtEliminar_Click() Dim i As Long Dim d As Variant On Error GoTo FIN: d = lista.List(lista.ListIndex, 1) '1 columna B C = lista.List(lista.ListIndex, 0) '0 columna A If MsgBox("¿Confirma ELIMINAR el articulo " & C & " del registro " & d & "?", vbYesNo + vbQuestion, "ELIMINACIÓN") = vbNo Then Exit Sub With Sheets("Productos") i = lista.ListIndex + 2 .Range("a" & i).EntireRow.Delete Call BuscaCambio Call actualizar_lista End With Exit Sub FIN: MsgBox ("No seleccionó ningún dato para eliminar"), vbInformation, "Eliminar" Buscar.SetFocus End Sub
El Call BuscaCambio es este
Sub BuscaCambio() 'Por DAM Busqueda obligando a seleccionar el criterio por el que buscar frmProd.pasar = 1 frmProd.buscar_Change frmProd.pasar = 0 End Sub
Y el Call actualizar_lista, este, que lo usan 2 macros mas dentro del formulario
Private Sub actualizar_lista() lista.RowSource = "" lista.RowSource = "Filtro!A2:G" & Sheets("Filtro").Range("A" & Rows.Count).End(xlUp).Row Buscar.SetFocus End Sub
Sucede que (aun no había necesitado eliminar algún articulo (linea)).
Abro el formulario, busco artículo, selecciono línea en ListBox y piso botón que elimina, para eliminar la línea seleccionada en ListBox y en la hoja y actualiza el ListBox.
El procedimiento pareciera que lo hace, pero reviso y la que seleccioné sigue ahí, tanto en el ListBox como en la hoja.
Lo que pretendo es que elimine la que seleccione, en la hoja y actualice el ListBox.
1 respuesta
Respuesta de Dante Amor
3