Cadastro de Clientes no Excel com VBA

35
Cadastro de Clientes no Excel com VBA

Objetivo: Cadastro de clientes com consulta online do endereço através de um webservice e ainda cadastrar em uma planilha no Excel os dados do cadastro que foram cadastrados no formulário.




Para analisar as alterações criadas no VBA clique na guia Desenvolvedor->Visual Basic, as procedures criadas foram:

1. lsPesquisaCEP: Realiza a consulta dos dados do WebService de consulta de CEP.

2. lsAdiciona: Adiciona os dados cadastrados no formulário de clientes.

Sub lsPesquisaCEP(ByVal sCEP As String) On Error GoTo TratarErro Range("Consulta!a1:H1").Clear If sCEP <> "" Then With ActiveWorkbook.XmlMaps("webservicecep_Mapa") .ShowImportExportValidationErrors = False .AdjustColumnWidth = True .PreserveColumnFilter = False .PreserveNumberFormatting = False .AppendOnImport = False End With ActiveWorkbook.XmlImport URL:= _ "http://republicavirtual.com.br/web_cep.php?cep=" & sCEP, ImportMap:= _ Nothing, Overwrite:=False, Destination:=Range("Consulta!$a$1") End If Calculate Sair: Exit Sub TratarErro: MsgBox "CEP não cadastrado!" GoTo Sair Resume End Sub

Sub lsAdiciona() Dim iTotalLinhas As Integer Worksheets("Banco").Activate Range("Banco!$A$1").Select iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iTotalLinhas, 1).Value = Range("Banco!$L$1").Value + 1 Cells(iTotalLinhas, 2).Value = UCase(Range("Formulario!E7").Value) 'nome Cells(iTotalLinhas, 3).Value = Range("Formulario!E9").Value 'cep Cells(iTotalLinhas, 4).Value = UCase(Range("Formulario!E11").Value) 'tipo Cells(iTotalLinhas, 5).Value = UCase(Range("Formulario!G11").Value) 'logradouro Cells(iTotalLinhas, 6).Value = Range("Formulario!M11").Value 'número Cells(iTotalLinhas, 7).Value = UCase(Range("Formulario!E13").Value) 'bairro Cells(iTotalLinhas, 8).Value = UCase(Range("Formulario!E15").Value) 'cidade Cells(iTotalLinhas, 9).Value = UCase(Range("Formulario!M15").Value) 'uf Worksheets("Formulario").Activate Range("Formulario!E7").Value = "" 'nome Range("Formulario!E9").Value = "" 'cep Range("Formulario!M11").Value = "" 'número End Sub

Marcos Rieper



Treinamentos semanais em Excel

logo_210_90
Receba toda semana artigos sobre Excel e VBA por e-mail!

Importante: Você receberá um e-mail para confirmação!

35 COMENTÁRIOS

  1. Cara, Parabens aew.Marcos, estou com duvida a um tempão de como fazer o cadastro da forma que como fez.
    Sub lsAdiciona()
    Dim iTotalLinhas As Integer

    Worksheets(“Banco”).Activate
    Range(“Banco!$A$1”).Select

    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1

    Cells(iTotalLinhas, 1).Value = Range(“Banco!$L$1”).Value + 1
    Cells(iTotalLinhas, 2).Value = UCase(Range(“Formulario!E7”).Value) ‘nome
    Cells(iTotalLinhas, 3).Value = Range(“Formulario!E9”).Value ‘cep
    Cells(iTotalLinhas, 4).Value = UCase(Range(“Formulario!E11”).Value) ‘tipo
    Cells(iTotalLinhas, 5).Value = UCase(Range(“Formulario!G11”).Value) ‘logradouro
    Cells(iTotalLinhas, 6).Value = Range(“Formulario!M11”).Value ‘número
    Cells(iTotalLinhas, 7).Value = UCase(Range(“Formulario!E13”).Value) ‘bairro
    Cells(iTotalLinhas, 8).Value = UCase(Range(“Formulario!E15”).Value) ‘cidade
    Cells(iTotalLinhas, 9).Value = UCase(Range(“Formulario!M15”).Value) ‘uf

    Worksheets(“Formulario”).Activate

    Range(“Formulario!E7”).Value = “” ‘nome
    Range(“Formulario!E9”).Value = “” ‘cep
    Range(“Formulario!M11”).Value = “” ‘número

    End Sub

    Se Possivel puder fazer uma video-aula ou algo assim, pq eu nao entendi, e tbm sobre como vc fez com o cep das cidades e tals, mto bom, parabens aew . se puder me ajudar .

  2. Gostaria de saber como faço para deixar como padrão o site dos correios para fazer a busca do CEP, pois estou fazendo alguns testes com CEP de diversas localidades e não localiza

    • Boa noite Enivaldo,

      A base de dados do CEP que está sendo utilizada no cadastro de clientes é um web service gratuito, o do correio é pago.

      Teria que procurar algum outro web service melhor na internet com um banco mais atualizado.

      Abraço

      Marcos Rieper

  3. Olá Marcos,

    Agradeço pela dica! Estou precisando disso, só tem um problema, sou bastante leiga em VB e o meu Excel é 2003. Tentei criar a mesma planilha, mas não está aparecendo a Macro lsPesquisaCEP quando abro a guia Macro e também não sei o que é sCEP.
    Enfim, será qe poderia me passar o arquivo na versão 2003 ou entrar em contato?

    Obrigada
    Elaine

  4. Consigo colocar o cadastro em um botão, por exemplo, quando eu quizer cadastrar um cliente, aperto o botao “cadastrar” e aparece a tela para cadastro.

  5. BOA TARDE COMPANHEIRO

    ADOREI SEU PROGRAMA PARABÉNS, GOSTARIA DE ADD MAIS UNS CAMPOS PARA CADASTRO TIPO CNPJ, IE, E-MAIL, FONE.
    É POSSIVEL ACRESCENTAR E POSTAR AI PARA DONWLOAD?

    FICO NO AGUARDO DE SEU RETORNO.

    Atenciosamente
    Fernando Jonathan de Brito

  6. Bom dia amigo, muito legal seu aplicativo gostaria de saber se vc poderia demonstra como seria um botão de alteração para a informação preechido na planilha de banco de clientes ou seja se que precisa-se alterar a informação pela tela de cadastro.

  7. Gostaria de entender como a planilha oculta é utilizada. Pois não vejo referencia dela no módulo. Além disso, se tem como apontar Destination:= para outro lugar, por exemplo, direto para campos específicos em uma UserForm, por exemplo.

  8. Olá Marcos,

    Show esta sua planilha.
    Gostaria de saber se vc consegue me ajudar com um trabalho semelhante. Tenho uma planilha de ficha cadastral em VBA onde eu fiz umas adaptações e gostaria de preencher os campos de endereço ao digitar o CEP.
    Outra coisa q gostaria de inserir na VBA é a inclusão de foto no cadastro.

    Márcio

  9. Boa noite meu amigo to com um problema urgente e gostaria de saber se tem como o senhor me ajudar, precisaria de um desses so que com as seguintes informações a mais

    -Telefone para contato
    -Inicio do serviço
    -pago(opção sim e não) e quanto foi pago se sim
    -tipo de serviço
    – e numero do documento
    Isso tudo claro sem abusar da sua boa vontade, mas se o senhor pudesse me ajuda seria incrível pois meu chefe esta me sufocando por causa disso

    • Boa noite Matheus,

      Para fazer isso é necessário um pouco mais de conhecimento em VBA, infelizmente não disponho de tempo para atender todos os pedidos. Este demoraria algum tempo para ser feito, teria que ser validado com você e tudo mais.

      No projeto final do curso de VBA do site é passado passo-a-passo como criar este formulário e com o conhecimento de VBA e algum tempo e disposição você conseguiria fazer estas alterações.

      Abraço

      Marcos Rieper

    • Bom dia Carlos,

      Obrigado pelo seu contato, no momento não realizamos consultoria em Excel, mas no curso de VBA do Guia do Excel você aprenderá até o final do curso como criar este formulário e realizar as modificações necessárias.

      Abraço

      Marcos Rieper

  10. Amigo, boa noite.
    Sou do depto de TI do Sicoob. Gostaria de lhe pedir uma pequena ajuda.
    Preciso fazer no vba uma consulta de clientes por cnpj ou cpj. Tipo, vou ter um campo onde colocarei o cnpf ou cpj e no outro campo aparece validado ou não de acordo com a base de dados. Mas não consigo fazer com que execute uma consulta por cnpf e nem mesmo por cnpj vc pode me ajudar?

    Por favor responda por e-mail se puder.

    Obrigado

  11. OLA,Marcos Rieper SERIA POSSÍVEL INCLUIR ALEM DO CEP INCLUIR TAMBÉM O TELEFONE SERIA MELHOR PARA MIM POIS OS MEUS CLIENTE PASSA SEMPRE O TELEFONE SE PODER ME PASSAR PARA MIM FICAREI AGRADECIDO

DEIXE UMA RESPOSTA