EVENTO CHANGE - VBA

ALANTB 24/02/2010 15:13:43
#335238
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!!!!
NETMANIA 24/02/2010 15:32:16
#335245
Puxei o seu arquivo agora e vou dar uma olhada. Em breve te respondo dando uma posição.
ALANTB 24/02/2010 15:48:44
#335250
Valeu!!!
ALANTB 26/02/2010 18:37:14
#335505
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?????
ALANTB 01/03/2010 14:36:01
#335684
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
ALANTB 01/03/2010 17:46:32
#335710
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 !!!!!!!!!!
Tópico encerrado , respostas não são mais permitidas