Cómo comprobar que en una selección de celdas no se seleccionó ciertas filas en excel?
Estimad@s
Tengo el siguiente código para eliminar filas de una planilla. Pero hay una restricción:
Todas las filas anteriores a la fila 43 no pueden eliminarse ni las que estén después de la última fila.
ActiveSheet. Unprotect "PWD12345" Application.ScreenUpdating = False Dim UltimaFila As Integer UltimaFila = Range("A1").End(xlDown).Row '(para la última celda con datos) Dim fila As Integer fila = ActiveCell.Row If fila < 43 Then MsgBox ("Esta fila no se puede eliminar.") Sheets("Planilla de Costos").Protect "PWD12345", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True Exit Sub ElseIf fila >= UltimaFila Then MsgBox ("Esta fila no se puede eliminar.") Sheets("Planilla de Costos").Protect "PWD12345", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True Exit Sub End If Dim Resp As Byte Resp = MsgBox("Está seguro que desea eliminar?", _ vbQuestion + vbYesNo, "Borrar Fila") If Resp = vbYes Then Selection.EntireRow.Delete Else Exit Sub End If Application.ScreenUpdating = True
El tema está en que al seleccionar con el puntero me toma la activecell la primera que marqué con el puntero, entonces marqué una celda dentro del rango permitido pero la selección completa incluye filas que fuera de ese rango... Las elimina!
Agradecido por su ayuda.
1 Respuesta
Respuesta de Andy Machin
1