Notifications
Clear all

Atribuir um valor para o textbox

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

Olá caros colegas,

Como já disse antes, sou leigo em vba no excel, e preciso novamente da ajuda de vcs.
Conforme o anexo, quando entrasse no userform digita-se o CNPJ no textbox1 gostaria que aparecesse do lado a razão social no label4 conforme cadastrado anteriormente Sheet (Cad_Fornecedor).

silva_jmp

 
Postado : 15/02/2011 8:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Aproveitei e no evento Initialize do UserForm inseri para adicionar todos os CNPJ's automaticamente.
É preciso no ComboBox1 deixar a propriedade RowSource vazia.

Private Sub ComboBox1_Click()
Label3.Caption = Plan3.Range("C" & ComboBox1.ListIndex + 2).Value
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim I As Long
If Plan3.Range("B65536").End(xlUp).Row > 1 Then
For I = 2 To Plan3.Range("B65536").End(xlUp).Row
Me.ComboBox1.AddItem Plan3.Range("B" & I).Value
Next I
End If
End Sub

 
Postado : 20/02/2011 7:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu acho interessante você trabalhar com vários formulários para os cadastros: um formulário para cadastro de clientes e fornecedores, cadastros para peças, cadastro de classificação fiscal... E por aí vai... Como você colocou uma aba com o nome "Menu", imagino que este seja seu objetivo... Se você fizer isso mesmo, você pode colocar na sua macro uma linha para nomear um intervalo, no caso, o intervalo dos CNPJ.
Na propriedade RowSource, ao invés de inserir o intervalo, você insere o nome do intervalo, assim, sempre que você insere um registro, o intervalo é automaticamente renomeado e os dados já estarão a disposição em todas as abas que você fizer esta ligação com o nome.
Para alterar o Label3, eu utilizei o seguinte código no na ComboBox:

Private Sub ComboBox1_Change()

Dim CNPJ As String
Dim Row, LastRow As Long

CNPJ = ComboBox1.Value
LastRow = Sheets("Cad_Fornecedor").Range("B1").End(xlDown).Row
Row = Sheets("Cad_Fornecedor").Range("B1:B" & LastRow).Find(CNPJ, LookIn:=xlValues).Row
Label3.Caption = Sheets("Cad_Fornecedor").Range("C" & Row)

End Sub

Mais uma alternativa para você...

Abraços!

 
Postado : 25/02/2011 10:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

paulosemplano

Gostei da sua sugestão, mas se tiver mais combo's para alimentar as informações correspondes a elas, qual seria o código, pois simulei alguns não deu certo.
Podemos utilizar o mesmo UserForm_Initialize() para fazer a mesma função em outros combo's?

Pode me ajudar?

silva_jmp

 
Postado : 01/03/2011 9:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal estou usando o script de outra dúvida anterior, mas agora com data em textbox1, mas não esta dando certo, poderia dar uma olhada, e me mostrar onde estou errando?

Private Sub TextBox1_Change()

Dim Data As String
Dim Row, LastRow As Long

Data = TextBox1.Value
LastRow = Sheets("Plan2").Range("A1").End(xlDown).Row
Row = Sheets("Plan2").Range("A1:A" & LastRow).Find(Data, LookIn:=xlValues).Row
Label2.Caption = Sheets("Plan2").Range("B" & Row)

End Sub

silva_jmp

 
Postado : 07/06/2011 5:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal segue outro anexo, pois aquela anterior esta com problema.

Dá uma olhada e me ajudem neste assunto.

silva_jmp

 
Postado : 01/07/2011 12:24 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Silva... opção:

ATENÇÃO: não consta abaixo tratamento de erro caso o código digitado seja inexistente. Se a rotina abaixo retornar o resultado como esperado, confirme para que eu possa incluir.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim ws As Worksheet

Set ws = Sheets("Cad_Mat")

lin = Application.WorksheetFunction.Match(CInt(TextBox1.Value), ws.Range("A:A"), 0)
TextBox2 = ws.Cells(lin, 2)

End Sub

Private Sub TextBox3_Change()

Dim ws As Worksheet

Set ws = Sheets("Cad_Setor")

lin = Application.WorksheetFunction.Match(CInt(TextBox3.Value), ws.Range("A:A"), 0)
TextBox4 = ws.Cells(lin, 2)

End Sub

 
Postado : 01/07/2011 1:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edson, e isso msm que eu quero, mas quando salvo esta dando erro, e no caso se o código do material ou do setor não for correspondente ou cadastrado, podemos usar caixa de mensagem, ???

silva_jmp

 
Postado : 03/07/2011 9:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Silva,

teste agora novamente.

Qual erro surge para você ao Salvar?

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim ws As Worksheet

Set ws = Sheets("Cad_Mat")

If TextBox1 = "" Then
Exit Sub
End If

On Error GoTo ErroMAT:
lin = Application.WorksheetFunction.Match(CInt(TextBox1.Value), ws.Range("A:A"), 0)
TextBox2 = ws.Cells(lin, 2)
Exit Sub

ErroMAT:
TextBox1 = ""
TextBox2 = ""
MsgBox ("Código de Material inválido")

End Sub

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim ws As Worksheet

Set ws = Sheets("Cad_Setor")

If TextBox3 = "" Then
Exit Sub
End If

On Error GoTo ErroSET:
lin = Application.WorksheetFunction.Match(CInt(TextBox3.Value), ws.Range("A:A"), 0)
TextBox4 = ws.Cells(lin, 2)
Exit Sub

ErroSET:
TextBox3 = ""
TextBox4 = ""
MsgBox ("Código de Setor inválido")

End Sub

 
Postado : 03/07/2011 4:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edson depois que inserir o script não deu mais o erro no momento de salvar,,,

Mais uma para meu conhecimento.

Obrigado.
silva_jmp

 
Postado : 04/07/2011 8:23 am