Me impide copiar y pegar en todo el libro aunque desproteja la hoja

Esta macro la tengo en ThisWorkbook:

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Select Case Sh.Name
Case "Contado", "Adra Paco", "Balerma Trini", "El Ejido Adelina", "Berja Gador", "Adra Maria", "Iznajar Pepa", "Lucena Rafaela", "Lucena Carmen", "Benameji Juan", "Badolatosa Mª Jose", "Casariche Carmen", "Gilena Aurelia", "F. Piedra Antonia", "Humilladero Victoria", "Benameji Sole", "Galerias Fernandez", "Fuengirola Paco", "Fuengirola Charo", "Fuengirola Rosalia", "La Cala Antonia", "Marbella Juani", "Marbella Sara", "Flores Carmen", "Asuncion Maria", "Asuncion Pepi", "Asuncion Inma", "Asuncion Maria", "Asuncion Pepi", "Asuncion Inma", "Delicias Amparo", "La Paz Cris", "La Paz Paco", "La Luz J. Manuel", "Chapas Virginia Toñi", "P Sur Toñi", "Molinillo Meli", "Union Ramona Gema", "Huetor Mª Luisa", "Salar Carmen", "Loja Maribel", "Loja Paqui", "Loja Paqui", "Loja Mª Jose", "Moraleda Paqui", "Loja Pepa Marengo", "V Trabuco Charo", "A.Miel Manolo", "A. Miel Conchi Tere", "Torremolinos Paqui", "Torremolinos Fina", "Churriana Eva", "Pima", "Viajante PACO", "Viajante ORTIGOSA"
If Not Application.Intersect(Target, Range("F12:F41")) Is Nothing Then
Cancel = True
Set rMiCelda = Target
Call Crear_PopUp
Application.CommandBars("Clientes").ShowPopup
ActiveSheet.Protect Password:="1"
End If
End Select
End Sub

Y para copiar y pegar aunque desproteja la hoja en que este, incluso otras hojas del libro, no me deja trabajar en el libro y tengo que quitar de esta macro:

ActiveSheet.Protect Password:="1"
Y volverlo a poner despues de trabajar en cualquier hoja del libro.

2 respuestas

Respuesta
1

No se puede proteger ni desproteger hojas agrupadas.

Debes desproteger todas las que vayas a agrupar y al finalizar volverlas a proteger,

Esto se hace con un bucle del tipo:

Sub desproteje()
'x Elsamatilde
For Each sh In Sheets
'podemos omitir algunas
If sh.Name <> "PEDIDO CLIENTES" And sh.Name <> "PEDIDOS" Then
    sh.Unprotect "1"
End If
Next
End Sub

Como son muchas tus hojas opté por omitir el resto.

La misma macro iría al final del proceso, luego del Select, para volverlas a proteger. En ese caso la instrucción es 'protect' en lugar de 'unprotect'.

PD) Tu libro parece tener también un problema en la apertura... demora mucho.

Sdos!

Respuesta
1

Para copiar y pegar, deberás seguir el mismo procedimiento, primero desproteges, copias, pegas y y proteges nuevamente.

Tal vez tengas que hacerlo desde una macro.

¿O envíame tu archivo y me dices exactamente qué operación quieres que haga en cuál hoja y qué esperas que suceda?

Recuerda poner en el asunto tu nombre de usuario "luisherrero2"

Dante te lo he mandado ya

Un saludo

En el código que me enviaste tienes la protección después del select, por eso te protege todas las hojas, lo que debes hacer, es ponerlo dentro del if, tal y como se ve en el código que aquí pusiste.

Obviamente si ya protegiste la hoja, primer deberás desprotegerla para hacer tus operaciones y esa hoja ya no se volverá a proteger por la macro.

Prueba con esta macro, lo que hace falta es que habilites más funcionalidad cuando la la hoja está protegida, por default insertar filas no está permitido.

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Select Case Sh.Name
    Case "Contado", "Adra Paco", "Balerma Trini", "El Ejido Adelina", "Berja Gador", "Adra Maria", "Iznajar Pepa", "Lucena Rafaela", "Lucena Carmen", "Benameji Juan", "Badolatosa Mª Jose", "Casariche Carmen", "Gilena Aurelia", "F. Piedra Antonia", "Humilladero Victoria", "Benameji Sole", "Galerias Fernandez", "Fuengirola Paco", "Fuengirola Charo", "Fuengirola Rosalia", "La Cala Antonia", "Marbella Juani", "Marbella Sara", "Flores Carmen", "Asuncion Maria", "Asuncion Pepi", "Asuncion Inma", "Asuncion Maria", "Asuncion Pepi", "Asuncion Inma", "Delicias Amparo", "La Paz Cris", "La Paz Paco", "La Luz J. Manuel", "Chapas Virginia Toñi", "P Sur Toñi", "Molinillo Meli", "Union Ramona Gema", "Huetor Mª Luisa", "Salar Carmen", "Loja Maribel", "Loja Paqui", "Loja Paqui", "Loja Mª Jose", "Moraleda Paqui", "Loja Pepa Marengo", "V Trabuco Charo", "A.Miel Manolo", "A. Miel Conchi Tere", "Torremolinos Paqui", "Torremolinos Fina", "Churriana Eva", "Pima", "Viajante PACO", "Viajante ORTIGOSA"
        If Not Application.Intersect(Target, Range("F12:F41")) Is Nothing Then
            Cancel = True
            Set rMiCelda = Target
            Call Crear_PopUp
            Application.CommandBars("Clientes").ShowPopup
            ' Esto lo necesito solo en las hojas de clientes pero me actua en todo el libro
            ActiveSheet.Protect Password:="1", DrawingObjects:=False, Contents:=True, _
                Scenarios:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, _
                AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
        End If
    End Select
End Sub

Lo que hay que hacer es permitir "Insertar filas" o "Columnas":

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas