EVENTO CHANGE - VBA
Olá pessoal estou tentando carregar os dados de cadastro no frmCadastro.Matricula, Nome, Cargo tá puxando OK, mas Lotacao e Carga estão carregando dados totalmente diferentes.Não dá msg de erro.Já fiz várias mudanças, copie códigos diferentes e nada.Por isso, estou postando o projeto para os amigos, se possivel me dar uma força nessa.Valeu!!!!
Puxei o seu arquivo agora e vou dar uma olhada. Em breve te respondo dando uma posição.
Valeu!!!
Pessoal, neste sisteminha (em anexo ACIMA) em VBA, tenho um form de cadastro com campos: MATRICULA, NOME,CARGO, LOTACAO E CARGA(horas mensais do funcionario). O problema é que ao digitar a MATRICULA no evento EXIT deve carregar os outros campos, até ai tudo bem. O que estou apanhando é que quando carrega os campos CARGO, LOTACAO e CARGA deve ocorrer o evento change e exibir em um label ao lado de cada um a sua respectiva descrição.O campo NOME esta carregando OK, o campo CARGO e seu respectivo label tambem, mas apartir dai os outros até carrega dados, mas dados que não conferem com a planilha CADASTRO.Essa tá dificil, pois CARGO e LOTACAO teriam os eventos CHANGE praticamente identicos, só mudando o nome da planilha de dados, mas um funciona e outro não. Alguma idéia?????
Olá gente, uma coisa consegui descobrir: se ficar o evento CHANGE de um textbox apenas, funciona.Mas quando é informado os dois puxa os dados do primeiro corretamente (txtcargo) e errado os dados do segundo(txtlotacao).Então eu pergunto: como digitar os dois sem um influenciar o outro???Tem problema de haver dois controles com evento CHANGE no mesmo form????Segue trecho do codigo:
Private Sub txtlotacao_Change()
Dim LinhaProcura As Integer
Dim ValorProcura As Long
If txtlotacao.Value = [Ô][Ô] Then
Exit Sub
End If
LinhaProcura = 2
ValorProcura = CLng(txtlotacao.Value)
While Lotacao.Cells(LinhaProcura, 1).Value > [Ô][Ô]
If Lotacao.Cells(LinhaProcura, 1).Value = ValorProcura Then
LinhaPlanilha = LinhaProcura
lbllotacao.Caption = Lotacao.Cells(LinhaPlanilha, 2).Value
Exit Sub
End If
LinhaProcura = LinhaProcura + 1
Wend
End Sub
Private Sub txtcargo_Change()
Dim LinhaProcura As Integer
Dim ValorProcura As Long
If txtcargo.Value = [Ô][Ô] Then
Exit Sub
End If
LinhaProcura = 2
ValorProcura = CLng(txtcargo.Value)
While Cargos.Cells(LinhaProcura, 1).Value > [Ô][Ô]
If Cargos.Cells(LinhaProcura, 1).Value = ValorProcura Then
LinhaPlanilha = LinhaProcura
lblcargo.Caption = Cargos.Cells(LinhaPlanilha, 2).Value
Exit Sub
End If
LinhaProcura = LinhaProcura + 1
Wend
End Sub
Private Sub txtlotacao_Change()
Dim LinhaProcura As Integer
Dim ValorProcura As Long
If txtlotacao.Value = [Ô][Ô] Then
Exit Sub
End If
LinhaProcura = 2
ValorProcura = CLng(txtlotacao.Value)
While Lotacao.Cells(LinhaProcura, 1).Value > [Ô][Ô]
If Lotacao.Cells(LinhaProcura, 1).Value = ValorProcura Then
LinhaPlanilha = LinhaProcura
lbllotacao.Caption = Lotacao.Cells(LinhaPlanilha, 2).Value
Exit Sub
End If
LinhaProcura = LinhaProcura + 1
Wend
End Sub
Private Sub txtcargo_Change()
Dim LinhaProcura As Integer
Dim ValorProcura As Long
If txtcargo.Value = [Ô][Ô] Then
Exit Sub
End If
LinhaProcura = 2
ValorProcura = CLng(txtcargo.Value)
While Cargos.Cells(LinhaProcura, 1).Value > [Ô][Ô]
If Cargos.Cells(LinhaProcura, 1).Value = ValorProcura Then
LinhaPlanilha = LinhaProcura
lblcargo.Caption = Cargos.Cells(LinhaPlanilha, 2).Value
Exit Sub
End If
LinhaProcura = LinhaProcura + 1
Wend
End Sub
Pessoal consegui resolver.Um pouco obvio até: simplesmente coloquei um dois(2) nas variaveis de um dos txt[ô]s, peguei o change do txtlotacao e ficou assim:
Private Sub txtlotacao_Change()
Dim LinhaProcura2 As Integer[ô] aqui que tava conflitando os dois
Dim ValorProcura2 As Long
Valeu pela atenção, vou encerrar !!!!!!!!!!
Private Sub txtlotacao_Change()
Dim LinhaProcura2 As Integer[ô] aqui que tava conflitando os dois
Dim ValorProcura2 As Long
Valeu pela atenção, vou encerrar !!!!!!!!!!
Tópico encerrado , respostas não são mais permitidas