Página 1 de 1
Juntar Cadastros de duas tabelas
Enviado: 08 Out 2018 às 21:38
por SandroLima
Boa noite, pessoal
Preciso novamente da ajuda de vocês.
Tenho um formulário através do qual pretendo alimentar os dados em duas tabelas: "CLIENTES" e "FORNECEDORES"
Tenho um código simples dos botões Cadastrar e Cancelar que precisava que fossem incrementados.
Preciso de ajuda para que os dados adicionados na tabela "CLIENTES" e na tabela "FORNECEDORES" depois sejam juntos e ordenados em uma terceira tabela chamada "CADASTRO GERAL" que me servirá como banco de dados.
Na planilha tenho outras observações que gostaria que fossem implementadas... se puderem dar uma olhada fiz as anotações em cada local a ser feita a implementação.
Agradeço muito se puderem ajudar.
Juntar Cadastros de duas tabelas
Enviado: 08 Out 2018 às 22:05
por mprudencio
Re: Juntar Cadastros de duas tabelas
Enviado: 08 Out 2018 às 22:18
por SandroLima
Respondido lá.
Continuo precisando dessa implementação.
Re: Juntar Cadastros de duas tabelas
Enviado: 09 Out 2018 às 04:23
por babdallas
Pode usar PowerQuery ou precisa ser via VBA?
Re: Juntar Cadastros de duas tabelas
Enviado: 09 Out 2018 às 07:36
por SandroLima
Bom dia.
Aceito qualquer alternativa, pois sou um estudante e curioso em excel.
Mas minha experiência em Power Query é absolutamente zero... estou mais habituado ao VBA.
Muito obrigado pela disposição em ajudar.
Re: Juntar Cadastros de duas tabelas
Enviado: 09 Out 2018 às 14:26
por babdallas
Veja se é o que deseja.
Re: Juntar Cadastros de duas tabelas
Enviado: 09 Out 2018 às 16:53
por SandroLima
Boa tarde, babdallas
Muito obrigado pela atenção. Vi que ficou por enquanto no 1º passo do processo... e já agradeço demais... já me deu uma luz.
É quase isso... preciso só de uma adaptação no módulo de classificação da tabela.
Fiz as observações na própria tabela.
Tentei replicar seu módulo também com as devidas alterações mas apresentou um erro que sinceramente não vi porque.
Também coloquei logo abaixo da tabela um modelo com o resultado esperado.
Já me foi dado uma grande ajuda. O seu código de cadastro ficou bem mais rápido que o meu anterior.
Na minha planilha definitiva os códigos da classificação estão dentro do próprio código do botão cadastrar.
O fato de vc ter criado um módulo é que deixou a execução mais rápida? Pq optou por criar o módulo?
Desculpe esse perguntar, perguntar... é que tenho muita vontade de aprender.
Re: Juntar Cadastros de duas tabelas
Enviado: 10 Out 2018 às 04:58
por babdallas
Sandro, criei um módulo ,de classificação dos dados para economizar código, já que este código é usado tanto no código de cadastrar Clientes quanto no código de cadastrar Fornecedores. Quanto a ser mais rápido, não analisei seu código anterior para comparar.
Fiz algumas alterações na classificação dos dados. Veja se agora atende a sua necessidade.
Quanto a juntar as tabelas em uma só, fiz no PowerQuery. Mas para funcionar você precisa ter o PowerQuery instalado. Se você possui Excel 2010 ou superior, basta baixar o suplemento PowerQuery da Microsoft e instalar. Caso tenha Office 2016 ou Office 365, o PowerQuery já se tornou nativo na guia Dados, grupo Obter e Transformar.
Agora se você possui Excel 2007 ou inferior, aí não vai funcionar mesmo, devendo ser feito no VBA.
Link parabaixar o Powerquery na versão 2010/2013:
https://www.microsoft.com/pt-BR/downloa ... x?id=39379
Re: Juntar Cadastros de duas tabelas
Enviado: 10 Out 2018 às 17:56
por SandroLima
Boa tarde, babdallas.
Ficou como eu queria agora.
Em relação à questão de juntar as tabelas em uma só com o Power Query, realmente ainda não tenho instalado mas vou deixar isso mais para frente... ainda estou aprendendo e uma coisa de cada vez.
De qualquer forma muito obrigado mesmo... me deu uma grande luz aqui na escrita de códigos.
Antes de finalizar o tópico gostaria só de tirar umas dúvidas:
Essa linha de comando:
1) Como ela poderia ser comentada para o meu aprendizado? Seria como ela renomeasse ou substituísse o lojTabela pela variável Tabela? (lojTabela foi atribuída a variável ListObjects no módulo ClassificaDados)
2) lojTabela... "loj" seria uma abreviação de que??? (gosto de entender, fazer a leitura do código na integra rsrs)
E o comando:
Código: Selecionar todosFor Each cControle In Me.Controls
If TypeOf cControle Is MSForms.TextBox Then cControle = vbNullString
Next cControle
1) Serve somente para TextBox? Pergunto pq ainda não testei ele na planilha que estou fazendo e lá tenho Combobox, OptionButton entre outas ferramentas.
2) cControle... "c" abreviação para??? (olha eu curioso de novo)
Grato demais pela ajuda

Re: Juntar Cadastros de duas tabelas
Enviado: 11 Out 2018 às 09:47
por babdallas
Sandro,
loj é uma abreviação que usei para saber que é uma variável ListObject. A subrotina ClassificaDados tem um parâmetro chamado lojTabela, que é do tipo Listobject. Assim, quando chamo a subrotina, preciso passar este argumento para ela, que é a variável Tabela que criei no evento click do botão Cadastrar.
Controls é uma coleção de controle de formulário (Ex: listbox, textbox, combobox, etc). Então faço um loop pelos controles dos seu formulário. Se for do tipo Textbox (para isso uso o operador TypeOf), então apago o conteúdo do textbox. Assim reduzo o número de linhas de código.
O c da variável cControle (na verdade costumo usar ctr ==> abreviação de Control), é para eu saber que é uma variável de controle de userform.
Re: Juntar Cadastros de duas tabelas
Enviado: 11 Out 2018 às 14:37
por SandroLima
Obrigado pela aula, babdallas.
Show de bola.