Admaury, não tenho como ver seu modelo no momento, então vou colocar uma rotina que eu usei a um tempo atraz que verifica se as celulas estão preenchidas, observe que para ficar mais limpo e fácil de identificar as celulas eu Nomeei as mesmas, essa rotina tem varias verificaçõess de celulas, mas reduzi só para exemplificar, veja se consegue adaptar a sua questão, só não esqueça que se nomear suas celulas alterar na rotina.
Sub VerificaCampos()
Dim sConfirma As Integer
Dim strVazia
Dim msg, MsgI
msg = "Preenchimento Obrigatório" ' Define a mensagem
MsgI = "Preenchimento Opcional" ' Define a mensagem
If Range("sCelData").Value = "" Then 'Range DATA
strVazia = "Data"
MsgBox "Campo " & (strVazia & " em Branco"), vbCritical, msg
Range("sCelData").Activate
Exit Sub
ElseIf Range("sCelDoc").Value = "" Then 'Range Documento
strVazia = "Documento"
MsgBox "Campo " & (strVazia & " em Branco"), vbCritical, msg
Range("sCelDoc").Activate
Exit Sub
ElseIf Range("sCelEndereco").Value = "" Then 'Range Endereço
strVazia = "Endereco"
MsgBox "Campo " & (strVazia & " em Branco"), vbCritical, msg
Range("sCelEndereco").Activate
Exit Sub
ElseIf Range("sCelObs").Value = "" Then 'Range OBS com exigindo confirmação
strVazia = "Observação"
sConfirma = MsgBox("Campo " & (strVazia & " em Branco") _
& vbCrLf & vbCrLf & "Deseja Continuar ?", vbYesNo + vbInformation, MsgI)
If sConfirma = vbNo Then
Range("sCelObs").Activate
Exit Sub
End If
'Após verificações continua o Cadastro chamando a rotina
'Call LançarNovo
Else
'Call LançarNovo
End If
End Sub
Essa rotina impede de Salvar após a verificação, você tem de colar no Evento do modulo da pasta "Private Sub Workbook_BeforeSave" e não da planilha.
É só um exemplo de verificação de algumas celulas antes de SALVAR, tem de ser ajustada ao que precisa.
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
'Impede Salvar Como
Cancel = True
'Verifica se as células A1, B1 e C1 estão vazias
If IsEmpty(Range("Plan1!A1")) Or IsEmpty(Range("Plan1!B1")) Or IsEmpty(Range("Plan1!C1")) Then
Mensagem = MsgBox("Celulas A1, B1 ou C1 estão vazias.", vbExclamation, "Documento não será salvo")
Exit Sub
End If
End Sub
Essa rotina impede de IMPRIMIR após a verificação, você tem de colar no Evento do modulo da pasta "Private Sub Workbook_BeforePrint" e não da planilha.
É só um exemplo de verificação de algumas celulas antes de IMPRIMIR tem de ser ajustada ao que precisa.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Impede Imprimir
Cancel = True
'Verifica se as células A1, B1 e C1 estão vazias
If IsEmpty(Range("Plan1!A1")) Or IsEmpty(Range("Plan1!B1")) Or IsEmpty(Range("Plan1!C1")) Then
Mensagem = MsgBox("Células A1, B1 ou C1 estão vazias.", vbExclamation, "Documento não será Impresso")
Exit Sub
End If
End Sub
Espero que ajude.
[]s
Mauro Coutinho
Postado : 09/10/2019 7:37 am