Página 1 de 1

Capturar na Planilha e colocar em TextBox no UserForm

Enviado: 30 Nov 2015 às 08:10
por ivancs
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

Capturar na Planilha e colocar em TextBox no UserForm

Enviado: 30 Nov 2015 às 12:17
por Parkeless
Olá Ivan!

Consegue postar a planilha?

Ainda desenvolvendo

Enviado: 30 Nov 2015 às 13:14
por ivancs
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

Re: Capturar na Planilha e colocar em TextBox no UserForm

Enviado: 30 Nov 2015 às 15:16
por Parkeless
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

Deu um erro

Enviado: 30 Nov 2015 às 16:52
por ivancs
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

Capturar na Planilha e colocar em TextBox no UserForm

Enviado: 30 Nov 2015 às 17:08
por Parkeless
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...

FOI RESOLVIDO

Enviado: 30 Nov 2015 às 18:11
por ivancs
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