Notifications
Clear all

Preenchimento Obrigatórios em vários intervalos (VBA)

4 Posts
2 Usuários
0 Reactions
619 Visualizações
(@leandro-p)
Posts: 2
New Member
Topic starter
 

Boa tarde!

Tudo bem? Estou acompanhando alguns posts seus no fórum do Planilhando.com.br, estou tentando incluir um comando para Obrigar os usuários de uma planilha a preencherem determinados intervalos, na verdade são 4 intervalos distintos:
1ª C7:H7
2ª C23:N73
3ª C77:N88
4ª C98:115

Consegui um código que incluir esta obrigação em 1 único intervalo (não consegui multiplicar para os demais intervalos), pode me orientar sobre como ampliar o comando para os demais intervalos?

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
If Application.CountA(Sheets("Plan1").Range("C7:H7")) < 6 Then
MsgBox "preencha o intervalo 'C7:H7'", vbExclamation, "Documento não será salvo"
Cancel = True
Exit Sub
End If
End Sub

 
Postado : 08/12/2015 11:39 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

LEANDRO P,

Boa Tarde!

Faça assim:

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
    If Application.CountA(Sheets("Plan1").Range("C7:H7")) < 6 Then
        MsgBox "preencha o intervalo 'C7:H7'", vbExclamation, "Documento não será salvo"
        Cancel = True
        Exit Sub
    ElseIf Application.CountA(Sheets("Plan1").Range("C23:N73")) < 512 Then
        MsgBox "preencha o intervalo 'C23:N73'", vbExclamation, "Documento não será salvo"
        Cancel = True
        Exit Sub
    ElseIf Application.CountA(Sheets("Plan1").Range("C78:N88")) < 132 Then
        MsgBox "preencha o intervalo 'C78:N88'", vbExclamation, "Documento não será salvo"
        Cancel = True
        Exit Sub
    ElseIf Application.CountA(Sheets("Plan1").Range("C98:N115")) < 216 Then
        MsgBox "preencha o intervalo 'C98:N115'", vbExclamation, "Documento não será salvo"
        Cancel = True
        Exit Sub
    End If
End Sub

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/12/2015 1:20 pm
(@leandro-p)
Posts: 2
New Member
Topic starter
 

Olá Walter muito obrigado pelo comando, é exatamente o que precisava.
Somente mais uma informação, como faço para incluir este comando em mais planilhas, dentro de uma mesma pasta do excel (preciso abrir 12 abas, uma para cada mês do ano).

 
Postado : 09/12/2015 11:03 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

LEANDRO P,

Boa tarde!

Deverá ter uma linha de comando:

ElseIf Application.CountA(Sheets("Plan1").

para cada planilha aberta. Obviamente, alterando o nome da aba ("Plan1", "Plan2", etc) para o nome de cada aba aberta.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 09/12/2015 2:21 pm