none
Desativar Eventos dentro dos Eventos RRS feed

  • Pergunta

  • Bom dia.

    Tenho um formulario como mostra na figura abaixo, onde tenho na parte de cima 3 combobox para busca de dados da planilha para os textbox abaixos dos combobox.

    Usei o evento Change do combobox de tal maneira que ao selecionar o dado no dropdown. ja preencha os texbox abaixo, para tanto, desativei o evento com Application.Enableevents=False, mas quando termino de preencher os textbox e vou limpar os combobox para novas pesquisas, ela comeca a rodar novamente apesar de ter desabilitado no inicio da rotina.

    Tem como desativar os eventos dentro dos eventos?

    Desde ja agradeco um retorno.

    Tadao

    Option Explicit Private Sub ComboBox1_Change()

    'desativei os eventos para nao acionar quando for limpar o combobox Application.EnableEvents = False Dim i As Integer For i = 1 To 8 UserForm1("TextBox" & i).Value = _ Worksheets("sheet1").Cells(Me.ComboBox1.ListIndex + 2, i).Value Next i Me.ComboBox2.Value = "" Me.ComboBox3.Value = "" Application.EnableEvents = True End Sub

    Private Sub ComboBox2_Change() Application.EnableEvents = False Dim i As Integer For i = 1 To 8 UserForm1("TextBox" & i).Value = _ Worksheets("sheet1").Cells(Me.ComboBox2.ListIndex + 2, i).Value Next i

    'aqui estou limpando os combobox, apesar de ter desativado no inicio,volta a rodar novamente com Evento Change Me.ComboBox1.Value = "" Me.ComboBox3.Value = "" Application.EnableEvents = True End Sub Private Sub ComboBox3_Change() Application.EnableEvents = False Dim i As Integer For i = 1 To 8 UserForm1("TextBox" & i).Value = _ Worksheets("sheet1").Cells(Me.ComboBox3.ListIndex + 2, i).Value Next i Me.ComboBox1.Value = "" Me.ComboBox2.Value = "" Application.EnableEvents = True End Sub

    Private Sub UserForm_Initialize() Application.EnableEvents = True Me.ComboBox1.RowSource = "Sheet1!A2:A" & Cells(Rows.Count, "A").End(xlUp).Row Me.ComboBox2.RowSource = "Sheet1!B2:B" & Cells(Rows.Count, "B").End(xlUp).Row Me.ComboBox3.RowSource = "Sheet1!C2:C" & Cells(Rows.Count, "C").End(xlUp).Row Application.EnableEvents = False End Sub


    domingo, 16 de junho de 2019 11:21

Respostas

  • Apos tentar varias vezes, mesmo colocando o Application.Enableevents=False, o evento atua mais uma vez no combobox que foi limpado. Para evitar processar novamente com combobox "", coloquei um If Me.ComboBox(1~ 3).Value = "" Then Exit Sub no inicio do evento de cada combobox para sair sem processar.

    Vou deixar essa solucao como resposta ate que alguem tenha uma solucao melhor, agradeco a quem tentou me ajudar, obrigado.

    Tadao

    terça-feira, 18 de junho de 2019 10:06