Eliminar fila con checkbox incluido en excel

Necesito eliminar los checkbox si es que elimino una fila en excel.
Actualmente tengo una macro que elimina la fila si borro algún dato de la columna B, el problema es que no elimina el checkbox que esta en la columna A, si no que este queda ahí mismo y se sobrepone al checkbox que tenia la fila de abajo.
Trate llamando por el nombre al checkbox pero a medida que se corren las filas, los checkbox también se van corriendo, por ejemplo si borro la fila 3, el checkbox asociado a la fila 4 pasa al 3, el del 5 al 4 y así sucesivamente, por lo que no puedo eliminarlos con un bucle for = i para los "checkbox" & i. A pesar de eso no tengo problemas con las celdas vinculadas, pero los check que quedan luego de borrar la fila no se vinculan a ninguna y como dije, quedan sobrepuestos.
Uso checkbox de formulario y no todas las filas lo tienen.

Dejo la macro para eliminar las filas, la cual esta asociada a la hoja1 de mi proyecto

Sub bvacias()

Dim i As Integer

uf = Range("B" & Rows.Count).End(xlUp).Row

For x = uf To 2 Step -1

If IsEmpty(Cells(x, 2)) Then

Cells(x, 2).EntireRow.Delete

End If

Next x

End Sub

1 respuesta

Respuesta
1

Hol.a

Te comentaba hace unos días que yo prefiero usar los "Checkbox" de los controles ACtiveX y no los de "Formularios" y una de las limitaciones de los últimos justamente es que no tienen una propiedad, a diferencia de los primeros, que permita que se eliminen junto con la fila/columna sobre la que están.

La alternativa más cercana a lo que necesitas es que cada "CheckBox" de cada fila incluya en su nombre el número de la fila, es decir, si colocas un "CheckBox" sobre "A5", su nombre debería ser "CheckBox5" y así sucesivamente, es decir, tendrías que cambiarle el nombre a los que ya tienes y hacer que tu rutina que inserta más, necesariamente les dé nombre y con la característica ya mencionada.

Otra forma sería tratar de que antes de borrar la fila/columna se detecte cual es y un "bucle" verifique todos los "CheckBox" y vea a que celda está vinculado y si coincide con la fila que se va a borrar, pues que también se elimine.

Una última cosa, los objetos como los "CheckBox" no es que se inserten en las celdas como algunas personas creen, están en una, llamémosla, "capa" encima de las celdas. Si estuviesen dentro de las celdas sería fácil eliminar todo.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas