Bom dia Pessoal....
Estou com um problema em um form no vba do excel. É um form simples, possui 1 combobox(que ja populei) que puxa os dados e referencias da planilha, um texbox que indica um valor de unidade(sem associação nenhuma) e dois textboxes que são interligados.
Era para funcionar assim o textbox2 é o volume, o textbox3 é a massa. O usuário pode escolher se deseja entrar com o valor da massa ou do volume. E se ja tiver digitado algum valor no outro textbox, este seria ignorado(apagado)
Minha idéia era que ao ir digitando o volume no textbox2, o textbox3(massa) apagaria o valor inserido no textbox3 e calcularia a massa automaticamente pela formula "volume*dens=massa" inserindo esse valor no texbox3 e vice versa se o usuario digitasse a massa no textbox 3.
tentei pelo evento keypress dos textbox porém o valor sempre atrasa em um digito, Ex.: se densidade =1 volume é igula a massa, quando digito 1 no texbox2 não aparece nada no textbox3 porém ao digitar "2", o digito seguinte, aparece apenas o primeiro digito no textbox 3
valorr no textbox2: "12" valor que aparece no textbox3: "1".
Consegui resolver isso em partes utilizando o evento change, porém quando altera o valor do textbox2 ele altera o valor do textbox3 na hora e como é para um depender do outro ignorando o valor digitado no outro campo (massa ou volume) criou um loop, pois sempre que textbox3 é modificado pelo evento change do textbox2 ele altera seu valor e dispara o change do textbox3 que por sua vez zera e modifica o valor do textbox2 e assim por diante....
Tentei Utilizar o metodo gotfocus mas não consegui nem fazer um simples comando de msgbox aparecer:
Private Sub textbox2_GotFocus()
MsgBox "Focus funcionou!!"
End Sub
Pensei em fazer algu do tipo: Se o foco estiver no textbox2 ele apenas auto preenche o textbox3 e se o foco estiver em textbox3 ele apenas preenche o textbox2. utilando o evento change mesmo chamando uma sub que testaria o foco ou o index por um IF e faria a modoficação apenas no textbox desejado, sem loops então, mas eu precisaria saber para isso qual o textbox que esta recebendo os dados... eis minha dificuldade
Gostaria de alguma ideia de voces pois estou bem perdido neste ponto.
Desde já agradeço,
Abraços