Página 1 de 1

[RESUELTO] Error en Macro al proteger todas las hojas

Publicado: Jue Nov 01, 2018 1:03 pm
por physic
Personal, he creado la siguiente macro en Excel para proteger todas las hojas (hojas) del archivo Excel. funcionó muy bien.

        * Pero ahora, en OpenOffice está acusando un error en la siguiente línea:
 ThisComponent.Sheet.Protect DrawingObjects: = True, Contenido: = True, escenarios: = True, Contraseña: = lPass, AllowFiltering: = true

El siguiente código sigue:

Código: Seleccionar todo

REM  *****  BASIC  *****
'Função que protege todas as planilhas de um arquivo
Option VBASupport 1
Sub lsProtegerTodasAsPlanilhas()
    'Declara as variáveis necessárias
    Dim lPass As String
    Dim lQtdePlan As Integer
    Dim lPlanAtual As Integer
    
    'Sheets(1).Activate
    If Sheets(1).ProtectContents = True Then Exit Sub
    
    'Solicita a senha
    'O método InputBox é utilizado para solicitar um valor através de um formulário
    lPass = InputBox("Proteger todas as planilhas:", "Senha", ActName)

    'Inicia as variáveis
    'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
    lQtdePlan = Worksheets.Count
    lPlanAtual = 1

    'Loop pelas planilhas
    'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
     While lPlanAtual <= lQtdePlan
        'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
        Worksheets(lPlanAtual).Activate
        
        Cells.Select
        Selection.Locked = True  'Bloqueia
        Selection.FormulaHidden = True  'Oculta
        Range("A1").Select

        'O método .Protect proteje a planilha passando os parâmetros para proteger
        'objetos de desenho, conteúdo, cenários e passando o password digitado    
       ThisComponent.Sheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=lPass, AllowFiltering:=True
       
         ActiveWindow.Zoom = 120
         ActiveWindow.DisplayHeadings = False

        'Muda o índice para passar para a próxima planilha
        lPlanAtual = lPlanAtual + 1
    Wend
    
    Sheets("Plan1").Select

    'O método MsgBox exibe um formulário de aviso ao usuário.
    MsgBox "Planilhas protegidas!"

End Sub
 * Puede ayudarme por favor corregir el error en esta línea!
muchas gracias.

Re: Error en Macro al proteger todas las hojas

Publicado: Lun Nov 05, 2018 11:04 pm
por fornelasa
Open Office no soporta esta instrucción:

Código: Seleccionar todo

AllowFiltering:=True
Por lo tanto

Código: Seleccionar todo

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=lPass
debería funcionar.
Saludos, Federico.

Re: [Resuelto] Error en Macro al proteger todas las hojas

Publicado: Mar Ene 08, 2019 12:16 am
por Itzealva
Hola estoy diseñando una macro pero estoy teniendo problemas con las hojas,

necesito que se ejecute desde una hoja visible y desprotegida y luego abra una hoja oculta y protegida con datos que no pueden ser modificados la desbloquee la ejecute y la vuelva a proteger y ocultar

me podrían ayudar?

Re: Error en Macro al proteger todas las hojas

Publicado: Mié Ene 09, 2019 6:16 pm
por Itzealva
Hola, ya lo resolvi gracias!!

Pero ahora no se como bloquear un boton que hice con un userform para que funcione en una hoja protegida

Re: Error en Macro al proteger todas las hojas

Publicado: Mié Ene 09, 2019 6:23 pm
por RMG
Hola Itzealva, te sugiero que abras un nuevo hilo con tu problema y con un título explicativo sobre el mismo, seguro que obtienes mejor ayuda.

Saludos