Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Preencher uma Text Box a partir de dados de outra Text Box
-
- Acabou de chegar
- Mensagens: 4
- Registrado em: Qui Mar 13, 2014 10:02 am
Preencher uma Text Box a partir de dados de outra Text Box
Olá pessoal. Sou ainda um iniciante na programação vba no excel, e só consegui montar até agora alguns formulários bem simples, mas sempre a partir de planilhas modelos ou com ajuda de suporte/dicas disponibilizadas na internet. Agora, estou desenvolvendo uma nova planilha para lançar apontamentos de produção, por meio de um Userform que possui alguns Text Box.
Minha questão é a seguinte: nesse userform, tenho 2 campos - Nº de Matrícula (txtMat) e Nome do Funcionário (txtNome) - e gostaria de saber como eu poderia preencher o txtNome a partir do valor correspondente da txtMat, exemplo: quando eu lançar no "Nº de Matric." o valor 100, automaticamente, preencer em "Nome" Maria de Jesus Silva. Eu inclusive já criei uma lista com o título "nome", com o intervalo das células que preciso puxar, porém não consegui aplicar o comando no text box.
Vi alguns tópicos aqui no fórum, porém não identifiquei um onde eu pudesse aplicar exatamente no meu pequeno projeto.
Ficarei muito grato mesmo, se alguém puder me dá uma força neste trabalho. Desde já agradeço.
Atenciosamente,
Gilnei Lima.
Aqui a planilha:
Minha questão é a seguinte: nesse userform, tenho 2 campos - Nº de Matrícula (txtMat) e Nome do Funcionário (txtNome) - e gostaria de saber como eu poderia preencher o txtNome a partir do valor correspondente da txtMat, exemplo: quando eu lançar no "Nº de Matric." o valor 100, automaticamente, preencer em "Nome" Maria de Jesus Silva. Eu inclusive já criei uma lista com o título "nome", com o intervalo das células que preciso puxar, porém não consegui aplicar o comando no text box.
Vi alguns tópicos aqui no fórum, porém não identifiquei um onde eu pudesse aplicar exatamente no meu pequeno projeto.
Ficarei muito grato mesmo, se alguém puder me dá uma força neste trabalho. Desde já agradeço.
Atenciosamente,
Gilnei Lima.
Aqui a planilha:
- joseA
- Jedi
- Mensagens: 1048
- Registrado em: Qui Out 22, 2009 7:22 am
- Localização: Cel. Fabriciano - MG
Re: Preencher uma Text Box a partir de dados de outra Text B
Bem vindo ao Tomás Vasquez/Fórum!!!!!
Utilizando uma adaptação desse tópico: viewtopic.php?f=20&t=2996
Copie/cole na área vba do seu form, faça o teste.
Utilizando uma adaptação desse tópico: viewtopic.php?f=20&t=2996
Copie/cole na área vba do seu form, faça o teste.
Código: Selecionar todos
Private Sub txtMat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
Dim sLin
sLin = 2
If Me.txtMat = "" Then
Exit Sub
End If
UL = Cadastro.Range("D65536").End(xlUp).Row '.Value 'definir a UL(UltimaLinha)
PL = Cadastro.Range("D2").End(xlUp).Row '.Value 'definir a PL(Primeira Linha)
Set x = Cadastro.Range("D" & UL & ":" & "D" & 2)
For Each c In x
If CDbl(c.Value) = CDbl(txtMat) Then
Me.txtNome = Cadastro.Range("E" & sLin).Value
Else
MsgBox "Matricula não cadastrada!!!", 64, "Produtividade"
Me.txtNome = ""
End If
sLin = sLin + 1
Next
End Sub
-
- Acabou de chegar
- Mensagens: 4
- Registrado em: Qui Mar 13, 2014 10:02 am
Re: Preencher uma Text Box a partir de dados de outra Text B
Primeiramente, muito obrigado pelas boas vindas.
Inseri o código na form exatamente como você escreveu, mas não funcionou. Apareceu uma mensagem de erro no código:
...
If CDbl(c.Value) = CDbl(txtMat) Then
...
Estou anexando a figura do erro. De antemão, gostaria de agradecer a atenção.
Inseri o código na form exatamente como você escreveu, mas não funcionou. Apareceu uma mensagem de erro no código:
...
If CDbl(c.Value) = CDbl(txtMat) Then
...
Estou anexando a figura do erro. De antemão, gostaria de agradecer a atenção.
- joseA
- Jedi
- Mensagens: 1048
- Registrado em: Qui Out 22, 2009 7:22 am
- Localização: Cel. Fabriciano - MG
Re: Preencher uma Text Box a partir de dados de outra Text B
Desculpa ai, confundi as coluna e a planilha, teste ai.
Código: Selecionar todos
Private Sub txtMat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
Dim sLin
sLin = 2
If Me.txtMat = "" Then
Exit Sub
End If
UL = Listagem.Range("B65536").End(xlUp).Row '.Value 'definir a UL(UltimaLinha)
PL = Listagem.Range("B2").End(xlUp).Row '.Value 'definir a PL(Primeira Linha)
Set x = Listagem.Range("B" & UL & ":" & "B" & 2)
For Each c In x
If CDbl(c.Value) = CDbl(txtMat) Then
Me.txtNome = Listagem.Range("C" & sLin).Value
End If
sLin = sLin + 1
Next
End Sub
-
- Acabou de chegar
- Mensagens: 4
- Registrado em: Qui Mar 13, 2014 10:02 am
Re: Preencher uma Text Box a partir de dados de outra Text B
Oi, joseA
Agora funcionou direitinho mesmo. Muito obrigado pela força.
Há dias eu vinha procurando por essa resposta.
Grato.
Agora funcionou direitinho mesmo. Muito obrigado pela força.
Há dias eu vinha procurando por essa resposta.
Grato.
-
- Colaborador
- Mensagens: 59
- Registrado em: Sáb Mar 15, 2014 5:48 pm
Re: Preencher uma Text Box a partir de dados de outra Text B
Oi Gilnei! Eu sei que sua dúvida foi resolvida e jamais quero desfazer do JoséA... Sou mais iniciante do que vc, acredite, mas, a título de conhecimento e função PROCV automática resolve o seu caso.
Você já tem uma lista...
MATRÍCULA NOME
100 MARIA
Private Sub txtMat_Change()
On Error Resume Next
If txtMat <> "" Then
txtNome = Application.WorksheetFunction.VLookup(CDbl(txtMat), Plan1.Range("b11:c15"), 2, 0) '=PROCV(H2;A1:B3;2;0)
Else
txtNome.Value = ""
End If
End Sub
Ou seja, quando alterar a TextBox da matrícula, ela busca o nome correspondente na sua lista (Local destacado em vermelho) e alimenta a TextBox do Nome.
Eu já usei isto. Mesmo que não precise mais, faça o teste, isso te pode ser útil daqui pra frente!
Você já tem uma lista...
MATRÍCULA NOME
100 MARIA
Private Sub txtMat_Change()
On Error Resume Next
If txtMat <> "" Then
txtNome = Application.WorksheetFunction.VLookup(CDbl(txtMat), Plan1.Range("b11:c15"), 2, 0) '=PROCV(H2;A1:B3;2;0)
Else
txtNome.Value = ""
End If
End Sub
Ou seja, quando alterar a TextBox da matrícula, ela busca o nome correspondente na sua lista (Local destacado em vermelho) e alimenta a TextBox do Nome.
Eu já usei isto. Mesmo que não precise mais, faça o teste, isso te pode ser útil daqui pra frente!
Re: Preencher uma Text Box a partir de dados de outra Text Box
Olá amigos estou tentando buscar dados pela textbox em meu formulario, o banco é no access. mas está dando este erro ----> PLACA_VEICULO não é um indice desta tabela.
Alguém pode ajudar-me?
Private Sub PLACA_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'On Error Resume Next
Dim Conexao As Database
Dim Selecionar As Recordset
Dim codigo As Integer
Set Conexao = OpenDatabase(ActiveWorkbook.Path & "\DatabaseEstoque.mdb")
Set Selecionar = Conexao.OpenRecordset("TB_FROTA")
Selecionar.Index = "PLACA_VEICULO"
Selecionar.Seek "=", PLACA
codigo = Selecionar!CÓDIGO
NOMECNPJ.Text = Selecionar!RAZAO_SOCIAL
End Sub
Alguém pode ajudar-me?
Private Sub PLACA_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'On Error Resume Next
Dim Conexao As Database
Dim Selecionar As Recordset
Dim codigo As Integer
Set Conexao = OpenDatabase(ActiveWorkbook.Path & "\DatabaseEstoque.mdb")
Set Selecionar = Conexao.OpenRecordset("TB_FROTA")
Selecionar.Index = "PLACA_VEICULO"
Selecionar.Seek "=", PLACA
codigo = Selecionar!CÓDIGO
NOMECNPJ.Text = Selecionar!RAZAO_SOCIAL
End Sub