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
#5406
Olá, amigos do Fórum,

Tenho dados em uma Plan4, com 3 campos, assim:
Mas a coluna A está vazia , o campo NOME está na coluna B, ENDEREÇO na coluna C e TELEFONE na coluna D. Mas essa linha com o nome dos campos é a linha 5, a partir da linha 6 é que vem os dados com os registros;
5 | A | NOME | ENDEREÇO | TELEFONE |
6 | | Paulo | Rua tal... | 5643XX43 |
7 | | José | Rua tal... | 4321XX56 |
8 | | Fernando | Rua tal... | 63429XX2 |

Dei apenas esse exemplo com 3 registros, mas todo dia esses dados vão aumentando, atualmente já tem 83 registros, ou seja 83 clientes.

Coloquei um UserForm1 (lá no Visual Basic Editor) , e coloquei 3 TextBox:
NOME = TextBox1
ENDEREÇO = TextBox2
TEL = TextBox3

O que eu preciso é o seguinte, eu digito o nome do cliente na TextBox1 do Form, clico em um CommandButton1 que coloquei no FORM, e através do evento Click do botão, capture o nome do cliente digitado, vá lá na Plan4, localize a célula daquele cliente(na coluna B), e capture os outros dois dados daquele cliente(ENDEREÇO e TEL) e coloque esses dados, o ENDEREÇO na TextBox2 e o TEL na TextBox3, completando os dados do cliente no Form.

Se alguém puder fazer um código simples mas que atenda a isso, ou seja, um código que localize a célula da coluna B( vai de B6:B200) com o nome daquele cliente, e pegue os outros dois dados do cliente, ENDEREÇO e TEL, e coloque nos TextBox, agradeço muito.
Abraço a todos, boa semana.
Ivan
Por ivancs
Posts
#5417
Olá, Parkeless,

É que ainda estou planejando o desenvolvimento da planilha, só que eu deixei pra fazer a planilha depois que entendesse essa questão que coloquei aqui no fórum, sozinho eu não saberia fazer esse código VBA para capturar os dados da Plan e inserir nas TextBox do Form.

Para entender o processo pode ser assim: a planilha pode ser apenas com 2 campos, NOME, e TEL. E no UserForm só coloca também 2 TextBox, NOME e TEL. e mais um botão de comando.

Em tempo de execução é assim. O usuário digita no txtNome o nome de um cliente, e clica no botão de comando. O código vai lá na Plan4 e procura na coluna B e localiza a célula onde está o nome daquele cliente, e aí usa o comando Offset e copia o telefone na célula da direita , e insere na txtTelefone lá do UserForm. Acho que é esse o processo, mas não sei fazer esse código. Obrigado por tentar ajudar, mas ainda não tenho a planilha.
Grande abraço,
Ivan
#5423
Ivan,

Estou encaminhando arquivo anexo, vê se é isso.

O código utilizado foi o seguinte:
Código: Selecionar todos
Private Sub CommandButton1_Click()
Dim cell As Range

For Each cell In Sheets("Plan2").Range("A2:A1000000").SpecialCells(xlCellTypeConstants) 'procurar em todas as células com dados na aba "Plan2"
    If Trim(UCase(cell)) = Trim(UCase(UserForm1.TextBox1.Value)) Then 'se a célula, maiúscula e sem espaços, for igual ao nome procurado, maiúsculo e sem espaços, então
        UserForm1.TextBox2.Value = cell.Offset(0, 1) 'número de telefone é uma offset à direita
        GoTo final
    End If
Next cell

MsgBox "Erro: nome não encontrado!", vbCritical 'Se não pulou para o final, então não encontrou. Resulta erro

final:
UserForm1.TextBox1.SetFocus 'Selecionar primeiro campo para nova busca


End Sub
Você não está autorizado a ver ou baixar esse anexo.
Por ivancs
Posts
#5430
Olá, Parkeless,

Mais uma vez obrigado pela sua vontade de ajudar. Quando eu li o código, embora eu conheça pouco de VBA, eu entendi tudo o que você fez e pensei , resolveu!! Mas aconteceu o seguinte, toda a parte do código desde o IF até o END IF foi marcada em vermelho acusando um erro.

Quando eu rodei acusou um erro de SINTAXE e marcou essa linha abaixo:
    If Trim(UCase(cell)) = Trim(UCase(UserForm1.TextBox1.Value)) Then 'se a célula, maiúscula e sem espaços, for igual ao nome procurado, maiúsculo e sem espaços, então

Não consigo ver onde possa haver esse erro de sintaxe aí, pra mim, aparentemente está tudo certo. Vê se entende o que possa estar havendo.
Abraço,
Ivan
#5431
Ivan,

Estranho; aqui está rodando normalmente. Você está rodando a partir do arquivo que enviei, ou já colou em outro arquivo direto? Porque se for o caso, pode ser que os nomes dos meus userforms sejam diferentes dos seus; isso teria que ser alterado no código

Se puder postar uma planilha em que o código não esteja funcionando, fica melhor para analisar...
Por ivancs
Posts
#5436
Pronto, já está resolvido, foi realmente uma troca que eu fiz no seu código para adaptar a minha necessidade, porque o exemplo que eu havia dado para apenas 3 campos, e depois até falei em 2 campos, mas aí fiz uma planilha provisória pra testar, mas mudei umas coisas na planilha, mas eu vi onde estava sendo afetado e mudei, e agora tá funcionando perfeito. Seu código não tinha nenhum erro.
Agradeço mais uma vez sua grande ajuda. A ajuda não é só permitir fazer o arquivo, é que a gente acaba aprendendo mais o VBA, fiquei conhecendo a função TRIM(que remove os espaços), UCASE converte maiúsculas, nunca tinha feito, mas aprendi legal. Grande ajuda, valeu, amigo.
Ivan
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