Ir ao conteúdo

Não consigo aplicar os MACROS e Salvar o doc e Bloquear o acesso aos códigos


MrDiniz

Posts recomendados

Postado

Pessoal, não consigo Colocar o código... ele serve para evitar de salvar o arquivo (e depois colocarei para evitar imprimir) antes de preencher alguns campos...

 

Só que não consegui adicionar estes códigos e mesmo que eu preencha os campos obrigatórios, o arquivo não salva.

 

E também queria colocar alguma senha para evitar de entrar no modo desenvolvedor e tirar o código...

 

 

 

Se alguém quiser me ajudar eu mando por email o arquivo e os códigos... porque aqui é bloqueado os sites que fazem upload...

Private Sub Workbook_Open()  With Sheets("DADOS_GERAIS")    .Range("C26,C30,G30,C32,G32,C34,G34,G36,C38,G38,C40") = "" 'limpa células  End WithEnd SubPrivate Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)'Impede Salvar ComoCancel = True'Verifica a aba CONSULTORIf IsEmpty(Range("CONSULTOR!E5")) ThenMensagem = MsgBox("Campo: 'Consultor/RC' Está Vazio. (Planilha: 'CONSULTOR' Campo: 'E5')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("CONSULTOR!E9")) ThenMensagem = MsgBox("Campo: 'MATRÍCULA' - Está Vazio. (Planilha: 'CONSULTOR' Campo: 'E9')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("CONSULTOR!E17")) ThenMensagem = MsgBox("Campo: 'CELULAR' - Está Vazio. (Planilha: 'CONSULTOR' Campo: 'E17')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End If'Verifica a aba DADOS_GERAISIf IsEmpty(Range("DADOS_GERAIS!D2")) ThenMensagem = MsgBox("Campo: 'Nº DA PROPOSTA/CONTRATO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'D2')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!M2")) ThenMensagem = MsgBox("Campo: 'N. Atendimento' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M2')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!C6")) ThenMensagem = MsgBox("Campo: 'PROPONENTE' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C6')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf Len(Range("DADOS_GERAIS!C12")) < 14 Then    If Range("DADOS_GERAIS!C8") = "1" Then        Mensagem = MsgBox("Campo: 'ESTADO CIVIL' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C8')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If Range("DADOS_GERAIS!G8") = "1" Then        Mensagem = MsgBox("Campo: 'SEXO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G8')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End IfEnd IfIf IsEmpty(Range("DADOS_GERAIS!C12")) ThenMensagem = MsgBox("Campo: 'CNPJ/CPF' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C12')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!G12")) ThenMensagem = MsgBox("Campo: 'I.E/RG' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G12')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!C14")) ThenMensagem = MsgBox("Campo: 'CONTATO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C14')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!G14")) ThenMensagem = MsgBox("Campo: 'E-MAIL' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G14')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!C16")) ThenMensagem = MsgBox("Campo: 'ENDEREÇO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C16')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!G16")) ThenMensagem = MsgBox("Campo: 'NÚMERO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G16')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!G18")) ThenMensagem = MsgBox("Campo: 'BAIRRO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G18')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!C20")) ThenMensagem = MsgBox("Campo: 'CIDADE' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C20')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!G20")) ThenMensagem = MsgBox("Campo: 'CEP' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G20')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!M20")) ThenMensagem = MsgBox("Campo: 'INSTALAÇÃO EM' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M20')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!C22")) ThenMensagem = MsgBox("Campo: 'TELEFONE' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C22')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf IsEmpty(Range("DADOS_GERAIS!N26")) ThenMensagem = MsgBox("Campo: 'INDICADO POR' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'N26')", vbExclamation, "Documento não será salvo sem o devido preenchimento")Mensagem = MsgBox("AVISO" & Chr(13) & "Se for CORRETOR, preencher o campo: 'SUSEP'" & Chr(13) & "(Planilha: 'DADOS_GERAIS' Campo: 'M26')", vbExclamation, "Documento não será salvo sem o devido preenchimento")ElseMensagem = MsgBox("AVISO" & Chr(13) & "Se for CORRETOR, preencher o campo: 'SUSEP'" & Chr(13) & "(Planilha: 'DADOS_GERAIS' Campo: 'M26')", vbExclamation, "Documento não será salvo sem o devido preenchimento")End IfIf Range("DADOS_GERAIS!M30") = 2 Then    If Range("DADOS_GERAIS!M32").Value = 0 Then        Mensagem = MsgBox("Campo: 'TITULAR' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M32')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If Range("DADOS_GERAIS!M34").Value = 0 Then        Mensagem = MsgBox("Campo: 'CNPJ/CPF' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M34')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If Range("DADOS_GERAIS!G49") = "1" Then        Mensagem = MsgBox("Campo: 'BANCO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M36')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!M38")) Then    Mensagem = MsgBox("Campo: 'AGÊNCIA' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M38')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!M40")) Then    Mensagem = MsgBox("Campo: 'CONTA CORRENTE' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'M40')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End IfEnd IfIf Range("DADOS_GERAIS!B27") = False Then    If IsEmpty(Range("DADOS_GERAIS!C26")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'BENEFICIÁRIO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C26')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If        If IsEmpty(Range("DADOS_GERAIS!C30")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'CNPJ/CPF' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C30')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If        If IsEmpty(Range("DADOS_GERAIS!G30")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'I.E/RG' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G30')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!C32")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'CONTATO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C32')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!G32")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'E-MAIL' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G32')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!C34")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'ENDEREÇO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C34')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!G34")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'NÚMERO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G34')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!G36")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'BAIRRO' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G36')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!C38")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'CIDADE' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C38')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!G38")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'CEP' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'G38')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End If    If IsEmpty(Range("DADOS_GERAIS!C40")) Then    Mensagem = MsgBox("Local de instalação diferente do proponente, preencher o(s) campo(s):" & Chr(13) & "Campo: 'TELEFONE' - Está Vazio. (Planilha: 'DADOS_GERAIS' Campo: 'C40')", vbExclamation, "Documento não será salvo sem o devido preenchimento")    End IfEnd IfExit SubEnd SubSub Caixadeseleção15_Clique()    If Range("DADOS_GERAIS!B27") = True Then            [C26].FormulaLocal = "=SE(B27=VERDADEIRO;C6;"""")"        [C30].FormulaLocal = "=SE(B27=VERDADEIRO;C10;"""")"        [G30].FormulaLocal = "=SE(B27=VERDADEIRO;G12;"""")"        [C32].FormulaLocal = "=SE(B27=VERDADEIRO;C14;"""")"        [G32].FormulaLocal = "=SE(B27=VERDADEIRO;G14;"""")"        [C34].FormulaLocal = "=SE(B27=VERDADEIRO;C16;"""")"        [G34].FormulaLocal = "=SE(B27=VERDADEIRO;G16;"""")"        [G36].FormulaLocal = "=SE(B27=VERDADEIRO;G18;"""")"        [C38].FormulaLocal = "=SE(B27=VERDADEIRO;C20;"""")"        [G38].FormulaLocal = "=SE(B27=VERDADEIRO;G20;"""")"        [C40].FormulaLocal = "=SE(B27=VERDADEIRO;C22;"""")"        Else        'Limpa os campos para verificar        [C26].FormulaLocal = ""        [C30].FormulaLocal = ""        [G30].FormulaLocal = ""        [C32].FormulaLocal = ""        [G32].FormulaLocal = ""        [C34].FormulaLocal = ""        [G34].FormulaLocal = ""        [G36].FormulaLocal = ""        [C38].FormulaLocal = ""        [G38].FormulaLocal = ""        [C40].FormulaLocal = ""    End If    End Sub
Postado

Foi mal.. foi força do hábito.. mas é excel, queria falar doc de arquivo...


Descobri o porque não está salvando... é que o Cancel está como True....

 

Só estou vendo um modo de reparar isso

Postado

Alguém saberia dizer porque aqui da erro? só com uma campo funciona:

If Range("DADOS_GERAIS!E5,E9,E17,D2,M2,C6,C12,G12,C14,G14,C16,G16,G18,C20,G20,M20,C22,N26") <> "" Then
Postado

Tente assim: 

With Sheets("DADOS_GERAIS")        If .Range("A5") = "" And _           .Range("A9") = "" And _           .Range("A17") = "" Then  ' assim por diante            'coloque  sua acao aqui nesta linha        End If    End With
Postado

Se a sua intenção é verificar se todas as células da lista estão preenchidas, experimente:

If Application.CountA(Sheets("DADOS_GERAIS").Range _  ("E5,E9,E17,D2,M2,C6,C12,G12,C14,G14,C16,G16,G18,C20,G20,M20,C22,N26")) = 18 Then
Postado

Pessoal, e como posso colocar os códigos e colocar uma senha para não entrarem la (Ctrl+F11) para tirar os mesmos?


E vocês saberiam como (se é que da) para deixar em uma frase só algumas palavras em Negrito?

Tipo: "Olá eu não sei muito de vba"

  • Membro VIP
Postado

Bom dia MrDiniz

 

Para bloquear com senha o projeto VBA, faça o seguinte:

 

No Editor de VBA --> clique em Ferramentas --> Propriedades de VBAProject  --> Aba Proteção --> Marque a opção --> Bloquear Projeto para Exibição --> digite uma senha-->  confirme a Senha.--> dê OK.  

 

At.te

Postado

Valeu Patropi....

 

Eu ainda estou apanhando para aplicar os códigos... Pois como coloco as condições BeforeSave, quando coloco o código e tento salvar o arquivo (mesmo em xlsm) as vezes não vai... teria alguma outra maneira?

Postado

Ola Basole, me passa seu email por MP


O meu problema maior é saber como adicionar os códigos.. porque eu coloco a planilha como habilitado para macro (xlsm) ai coloco os códigos... quando clico em salvar para ficar na planilha... ele começa a fazer as validações e não ficam os códigos lá

Postado

Consegui colocando os códigos e apertando o botão de interromper (símbolo de pause) e salvei com os códigos...

 

Alguém sabe me dizer se tem alguma maneira de bloquear a pessoa a mudar o tipo de arquivo?

 

porque vou mandar essa planilha para as pessoas, e se ela preencher os campos e colocar em "salvar como" tira as macros e ficaria sem os códigos...

  • Membro VIP
Postado

Boa noite MrDiniz

 

Você pode utilizar está macro para bloquear.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)If SaveAsUI = True ThenCancel = TrueMsgBox "A opção Salvar como encontra se desativada. Utilize a função Salvar para guardar suas alterações"End IfEnd Sub

A rotina será executada toda vez que o usuário for salvar a planilha. Se utilizar o recurso "Salvar" . Ao tentar utilizar a opção "Salvar como" será exibida a mensagem.

 

At.te

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!