Notifications
Clear all

Preencher TextBox automático

7 Posts
1 Usuários
0 Reactions
2,353 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Excelceiros!

É o seguinte pessoal, tentei um monte de coisa aqui mais não conseguir... tenho uma ComoBox onde vai digitar o código do funcionário, ao sair dessa ComoBox os campos abaixos que são TextBox sejam preenchida de acordo com o código do R.E do funcionário.

Exemplo:

R.E: 1 *Digitar
Nome: Gleidson *Aparecer de forma automática ao sair da ComoBox R.E
Funçao: Pedreiro *Aparecer de forma automática ao sair da ComoBox R.E
Descrição: Pião de construção *Aparecer de forma automática ao sair da ComoBox R.E

Segue exemplo em VBA para ilustrar melhor.
Um grande abraços a todos, e muito obrigado pela sua atenção!!!

 
Postado : 10/02/2012 6:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Gleidson,

exclua sua macro e substitua por esta:

Private Sub ComboBox1_Change()

re = ComboBox1.Value

i = Application.WorksheetFunction.Match(CLng(re), Sheets("dbComBox").Range("A:A"), 0)

TextBox2 = Sheets("dbComBox").Cells(i, 2)
TextBox3 = Sheets("dbComBox").Cells(i, 3)
TextBox4 = Sheets("dbComBox").Cells(i, 4)

End Sub

 
Postado : 10/02/2012 7:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Muito bom cara Edson!
Deu certo aqui.

Dessa forma vai funcionar para os 800 registros de funcionários.
Vlw.

 
Postado : 10/02/2012 7:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo como faço para tratar o seguinte ERRO... ao digitar um código inexistente na lista de registro, o VBA gera um ERRO, como posso corregi-lo?

Código todo!

Private Sub cbxRE_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If cbxRE.Text = "" Then
    
    cbxRE.Text = 0
    cbxRE.Text = FormatNumber(cbxRE.Text, 0)
    MsgBox "Digite à matrícula do Motorista"
    cbxRE.SetFocus

Else

    re = cbxRE.Value
    i = Application.WorksheetFunction.Match(CLng(re), Sheets("dbComBox").Range("A:A"), 0)
    
    txtNome = Sheets("dbComBox").Cells(i, 2)
    txtFuncao = Sheets("dbComBox").Cells(i, 3)
    txtDescricao = Sheets("dbComBox").Cells(i, 4)

End If

End Sub

    Private Sub cbxRE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    
    If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0
    
End Sub

Obrigado pela atenção!

 
Postado : 13/02/2012 6:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!!

Tente o ...

On Error Resume Next.

 
Postado : 13/02/2012 6:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia! alexandrevba

Então deu certo, o erro foi mostrado, mais mesmo assim retorna para o modo de código do vba, quero que aplicação continua...
Veja como ficou amigo.

If cbxRE.Text = "" Then
    
    cbxRE.Text = 0
    cbxRE.Text = FormatNumber(cbxRE.Text, 0)
    MsgBox "Digite à matrícula do Motorista"
    cbxRE.SetFocus

Else

On Error GoTo TrataErro

TrataErro:

MsgBox Err.Description & i

    re = cbxRE.Value
    i = Application.WorksheetFunction.Match(CLng(re), Sheets("dbComBox").Range("A:A"), 0)
    
    txtNome = Sheets("dbComBox").Cells(i, 2)
    txtFuncao = Sheets("dbComBox").Cells(i, 3)
    txtDescricao = Sheets("dbComBox").Cells(i, 4)
    

Exit Sub

End If
 
Postado : 13/02/2012 6:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!!

Fico feliz que resolveu!

Se precisar estermos aqui... ;)

Caso as dicas form úteis, clina mãozinha nas respostas daqueles que te ajudaram at ++++++ :lol:

 
Postado : 13/02/2012 8:24 am