none
Macro que bloqueia edição de todas as células que contém fórmulas dentro de uma pasta do Excel? RRS feed

  • Pergunta

  • Preciso de uma macro que bloqueia a edição de todas as células que contém fórmulas dentro de uma pasta do Excel.

    Estou tentando assim:

    Sub proteger()
    
    For Each x In ActiveSheet.UsedRange
    
        If x.HasFormula = True Then
            ActiveSheet.Unprotect
            x.Locked = True
            ActiveSheet.Protect
        End If
    
    Next
    
    End Sub


    Está dando erro na linha:

     x.Locked = True
    


    sábado, 31 de agosto de 2013 15:29

Respostas

  • Sub proteger()
    
    For Each plan In ActiveWorkbook.Sheets
    If plan.Cells.HasFormula = True Then
    
    With plan
    .Unprotect
    .Cells.Locked = False
    .Cells.FormulaHidden = False
    .Cells.SpecialCells(xlCellTypeFormulas).Locked = True
    .Cells.SpecialCells(xlCellTypeFormulas).FormulaHidden = True
    .EnableSelection = xlUnlockedCells
    .Protect
    End With
        End If
    Next
    
    End Sub

    • Marcado como Resposta AndersonFDiniz domingo, 1 de setembro de 2013 22:02
    • Editado AndersonFDiniz segunda-feira, 2 de setembro de 2013 00:47
    domingo, 1 de setembro de 2013 22:02

Todas as Respostas

  • Sub proteger()
    
    For Each plan In ActiveWorkbook.Sheets
    If plan.Cells.HasFormula = True Then
    
    With plan
    .Unprotect
    .Cells.Locked = False
    .Cells.FormulaHidden = False
    .Cells.SpecialCells(xlCellTypeFormulas).Locked = True
    .Cells.SpecialCells(xlCellTypeFormulas).FormulaHidden = True
    .EnableSelection = xlUnlockedCells
    .Protect
    End With
        End If
    Next
    
    End Sub

    • Marcado como Resposta AndersonFDiniz domingo, 1 de setembro de 2013 22:02
    • Editado AndersonFDiniz segunda-feira, 2 de setembro de 2013 00:47
    domingo, 1 de setembro de 2013 22:02
  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum.

    Sub fnc()
        Dim wks As Worksheet
        
        For Each wks In ActiveWorkbook.Worksheets
            With wks
                .Cells.Locked = False
                .Cells.FormulaHidden = False
                .Cells.SpecialCells(xlCellTypeFormulas).Locked = True
                .Cells.SpecialCells(xlCellTypeFormulas).FormulaHidden = True
                .EnableSelection = xlUnlockedCells
                .Protect
            End With
        Next wks
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    segunda-feira, 2 de setembro de 2013 00:08
    Moderador