Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por livip
Posts
#60248
Tenho uma planilha de ordem de serviço que imprimo em toda entrega de carro (é uma oficina), e nela eu possuo alguns botões com funcionalidades para facilitar meu dia a dia, e um deles é um de cadastrar clientes que fiz através de VBA, para cadastrar todas as infos que costumo coletar dos clientes (nome, endereço, cpf, telefone, placa, carro etc) em uma outra pasta dentro dessa mesma planilha, uma que coloquei o nome de "BD_CLIENTES". Porém descobri uma falha na minha planilha...

Basicamente, eu possuo uma planilha base, onde eu abro toda vez que preciso criar novas notas/ordens de serviços para um serviço novo, e depois que crio, eu salvo uma CÓPIA dessa planilha na área de trabalho para o cliente especifico com os serviços feitos para ele, até a entrega do carro. Logo, eu acabo tendo várias planilhas de Ordem de serviços, para cada cliente que tiver fazendo serviço no momento conosco. E acaba que, clientes não cadastrados, só pego as informações na entrega do serviço, e quando clico para cadastrar, ele cadastra na planilha desse cliente, que posteriormente vai ser excluida, ao invés de cadastrar na planilha base.

Daí eu queria saber se existe uma forma através do VBA, de eu alterar meu código atual de cadastro para um que salve essas informações do cliente na planilha base ao invés de salvar na planilha do cliente, e também BUSQUE o cliente na planilha base na hora de pesquisar por ele.

Vou deixar o link da planilha no google drive, pra quem quiser dar uma olhada nela, e no código e entender melhor como eu fiz e como ela funciona.

https://drive.google.com/file/d/1X7DVMw ... sp=sharing

Ps. o botão "SALVAR COMO" é o que eu uso para fazer uma cópia da planilha original para o mesmo local porém com o nome do cliente e carro.
Avatar do usuário
Por Strogonoff
Posts Avatar
#60314
Boa Tarde!!!
Vamos lá.. Sem a planilha para resolver, vamos para o campo das suposições e achologias (sou um péssimo achologo)
Em relação a busca o cliente na ordem de serviço, é simples, supondo que os dados do cliente estão na mesma linha, use o comando FIND
range ("(coluna onde estão o nome do cliente):(novamente a coluna)").find(nome da variavel onde está o nome do cliente).Row
suponha que esteja na coluna B e que você armazenou na variável ClienteOficina, ficaria:
VerifCleiente =Range("B:B").Find(ClienteOficina).Row ´Você terá o numero da linha onde estará o seu cliente e use essa variável para baixar os dados dele nos campos que você precisará.
Outro detalhe:
Eu criaria um campo no cadastro de serviço onde teria a entrada e saída do carro, e se o carro estivesse em branco, imediatamente copiaria os dados desse serviço para uma aba Serviços em abertos. e na página principal, com uma simples expressão cont.valores, você teria quantos serviços estariam em aberto.
E quando colocasse uma data de saída, repassasse esses dados para uma aba Serviços Finalizados. (
Se for o caso, manda uma planilha sem dados para que eu possa inserir essas rotinas nela.
Espero ter ajudado
Abraço
Por livip
Posts
#60365
Strogonoff escreveu: 07 Nov 2020 às 14:49 Boa Tarde!!!
Vamos lá.. Sem a planilha para resolver, vamos para o campo das suposições e achologias (sou um péssimo achologo)
Em relação a busca o cliente na ordem de serviço, é simples, supondo que os dados do cliente estão na mesma linha, use o comando FIND
range ("(coluna onde estão o nome do cliente):(novamente a coluna)").find(nome da variavel onde está o nome do cliente).Row
suponha que esteja na coluna B e que você armazenou na variável ClienteOficina, ficaria:
VerifCleiente =Range("B:B").Find(ClienteOficina).Row ´Você terá o numero da linha onde estará o seu cliente e use essa variável para baixar os dados dele nos campos que você precisará.
Outro detalhe:
Eu criaria um campo no cadastro de serviço onde teria a entrada e saída do carro, e se o carro estivesse em branco, imediatamente copiaria os dados desse serviço para uma aba Serviços em abertos. e na página principal, com uma simples expressão cont.valores, você teria quantos serviços estariam em aberto.
E quando colocasse uma data de saída, repassasse esses dados para uma aba Serviços Finalizados. (
Se for o caso, manda uma planilha sem dados para que eu possa inserir essas rotinas nela.
Espero ter ajudado
Abraço

Então, upei a planilha no link do google drive que deixei na pergunta. De qualquer forma irei anexá-la aqui. Estou fazendo uns testes com base no que você comentou, mas se tiver alguma outra dica a acrescentar, fica a vontade.

Desde já agradeço a ajuda.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord