none
codigo excel 2007 RRS feed

  • Pergunta

  • boa tarde

    to precisando de criar uma planilha de fluxo de caixa, preciso que ela mantenha as celulas desbloqueadas mas quando alguem preencher ela, ela bloqueie com senha pra nao conseguirem edita-la novamente para alterar algum valor. vai ter colunas de valores, datas e textos... Podem me passar como tem que ficar ou entao me da uma planilha exemplo e me explicar como eu mudo alguma coisa?

    obg

    arthuro

    quarta-feira, 18 de julho de 2012 18:09

Respostas

  • Acho que seria um pouco radical a solução de bloquear as células assim que elas fossem preenchidas. Sugiro que, ao salvar a Pasta de Trabalho, que as células preenchidas sejam bloqueadas, e as em branco, livres. Adicione o código abaixo na classe da Pasta de Trabalho:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        'Altere os valores abaixo para atender sua necessidade:
        Const sNomePlanilha As String = "Plan1"
        Const sSenha As String = "senha"
        
        Dim rUso As Range
        
        With Sheets(sNomePlanilha)
            If ActiveSheet.Name = sNomePlanilha Then
                .Unprotect sSenha
                
                On Error Resume Next
                Set rUso = .UsedRange.SpecialCells(xlCellTypeFormulas)
                If rUso Is Nothing Then
                    Set rUso = .UsedRange.SpecialCells(xlCellTypeConstants)
                End If
                Set rUso = Union(rUso, .UsedRange.SpecialCells(xlCellTypeConstants))
                On Error GoTo 0
            
                .Cells.Locked = False
                If Not rUso Is Nothing Then
                    rUso.Locked = True
                End If
            End If
            .Protect sSenha
        End With
    End Sub


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

    quarta-feira, 18 de julho de 2012 20:30
    Moderador