Saltar al contenido

Macro para habilitar tabla para agregar filas automaticamente en hoja protegida


Ir a la solución Solucionado por JSDJSD,

Recommended Posts

publicado (editado)

Hola amigos de Ayuda Excel.

Buenos dias, tengo una tabla y deseo proteger la hoja, He investigado pero las tabla no funcionan en hojas protegidas, sin embargo, he encontrado varios articulos que las tablas pueden funcionar con hojas protegidas a través de macros. Incluso conseguí un código pero particularmente no me funciona. 

Me podrán ayudar a ver por qué no funciona

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Column > 8 Then Exit Sub
On Error Resume Next
With ActiveSheet
ActiveSheet.Unprotect Password:="123"
.ListObjects("Tabla11").Resize Target.CurrentRegion
ActiveSheet.Protect ("123")
End With
On Error GoTo 0

End Sub

prueba TABLA PROTEGIDA.xlsm

Editado el por Leonardo Briceño
falto información en titulo
  • Leonardo Briceño changed the title to Macro para habilitar tabla para agregar filas automaticamente en hoja protegida
publicado

Prueba y comentaimage.thumb.gif.96e84fb4e2ddd013bac18243b00d9656.gif

Private Sub Worksheet_Change(ByVal Target As Range)
    ' Salir si se seleccionan varias celdas a la vez
    If Target.Count > 1 Then Exit Sub

    ' Salir si el cambio está en la fila 1
    If Target.Row = 1 Then Exit Sub

    ' Salir si el cambio está en una columna mayor a la columna 8
    If Target.Column > 8 Then Exit Sub

    ' Intentar redimensionar la tabla dentro de la protección de hoja
    On Error GoTo ErrorHandler
    Me.Unprotect Password:="123"

    ' Redimensiona la tabla a la región actual del Target
    Me.ListObjects("Tabla1").Resize Target.CurrentRegion

    ' Proteger de nuevo con configuraciones específicas para permitir edición en la tabla
    Me.Protect Password:="123", _
               AllowSorting:=True, _
               AllowFiltering:=True, _
               AllowUsingPivotTables:=True, _
               AllowInsertingRows:=True, _
               AllowDeletingRows:=True

    ' Restaurar control de errores
    On Error GoTo 0
    Exit Sub

ErrorHandler:
    MsgBox "Ocurrió un error al redimensionar la tabla. Verifica el nombre de la tabla y que los rangos estén correctos.", vbExclamation
End Sub

 

publicado

Super @JSDJSD funciona a la perfección!!!!!

Muchas gracias.  Con esta opción de tablas que había leído antes pero nunca había puesto en práctica es muy eficiente. 

Mi archivo original tiene 10.000 filas con formula y son 15 hojas. El archivo se pone pesado y lento. Con esta opción sera mas rapido y menos pesado el archivo.

Nuevamente gracias.😃

publicado

Disculpa    @JSDJSD , si ya tengo el evento  Private Sub Worksheet_Change(ByVal Target As Range) activo con otra macro, como agrego la solución que me diste?

Intente con la instrucción Else pero no logro hacerlo con éxito.

Gracias

                  

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.