Pessoal, boa tarde. Tudo bem?
Estou usando a macro abaixo que impede de salvar se alguns campos não estiverem preenchidos, mas preciso que ela não seja válida se a pessoa for uma administradora da planilha. (A planilha será usada com administradores e com outras pessoas que apenas deverão preencher outros campos). Se a pessoa digitar uma senha ao abrir o arquivo, essa macro se desabilita. Ou algo parecido, mas algo que permita que a pessoa consiga editar e salvar sem ter que preencher todos os campos. Alguém pode me ajudar?
Esses dois grupos de pessoas precisam ter como editar a planilha, deve haver diferenciação apenas na autorização de cada um para salvar.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets("Pre-qualificação")
If .[Q5] <> 11 Then
MsgBox "Preencha os campos de 'Dados da empresa contratada'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("E3").Select
End If
If .[Q5] = 1 And .[Q16] <> 17 Then
MsgBox "Preencha os campos de 'Referência da empresa'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("F16").Select
End If
If .[Q5] = 0 And .[R16] <> 14 Then
MsgBox "Preencha os campos de 'Referência da empresa'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("F16").Select
End If
If .[S30] <> 6 Then
MsgBox "Preencha o Item '1. Geral'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("N28").Select
End If
If .[Q12] = 0 Or .[N35] = "" Or .[N36] = "" Or .[N37] = "" Then
MsgBox "Preencha o Item '2. Política e Gerenciamento de segurança saúde e meio ambiente'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("N35").Select
End If
If .[Q12] = 0 And .[N39] = "" Then
MsgBox "Preencha o Item '3. Práticas e procedimentos seguros para o trabalho*'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("N39").Select
End If
If .[Q12] = 0 And .[N41] = "" Then
MsgBox "Preencha o Item '4. Treinamento de segurança saúde e meio ambiente'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("N41").Select
End If
If .[Q5] = 0 And .[S46] <> 6 Then
MsgBox "Preencha o Item '5. Atendimento a requisitos legais'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("N43").Select
End If
If .[Q5] = 1 And .[T46] <> 4 Then
MsgBox "Preencha o Item '5. Atendimento a requisitos legais'"
Sheets("Pre-qualificação").Activate
Cancel = True
Range("N43").Select
End If
End With
End Sub
Postado : 07/10/2015 11:44 am