UserForm_Initialize...
 
Notifications
Clear all

UserForm_Initialize e valores atualizados

9 Posts
3 Usuários
0 Reactions
2,001 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

eu apenas tenho visto UserForm_Initialize para carregar valores em objetos de userform
eu tenho uma penca de combobox e como preciso que sejam valores atualizados eu acabei por não optar por UserForm_Initialize

eu estou pensando em em utilizar uma listagem com certas definições

mas fora o UserForm_Initialize quais outros metodos de carregamentos de valores em objetos que existem ?
e qual é a vatagem de um sobre outro ?

 
Postado : 12/04/2015 11:33 am
(@laennder)
Posts: 62
Trusted Member
 

Olá Edcronos, tudo bem?

Na realidade UserForm_Initialize é um evento. Eventos são como "gatilhos" que quando puxados executam determinadas ações. Deixa eu tentar ser mais claro.

No caso do UserForm_Initialize é um evento que é executado sempre que o UserForm é inicializado. Por isso que é muito comumente usado para preencher ComboBoxes. O que você tem que fazer é escolher qual é o melhor evento para o seu caso. Pode ter situações por exemplo que você queira que sua lista seja atualizada sempre que outro ComboBox for atualizado, então neste caso é necessário usar o evento ComboBox_Change, que executa a ação quando o combobox é atualizado.

Seria mais fácil você exemplificar quais as situações que você deseja atualizar as suas listas para que digamos qual é o evento mais apropriado. Existem muitos tipos de eventos, para todos os objetos. Só pra ilustrar alguns deles do objeto UserForm

UserForm_Click → Quando você clica sobre o UserForm
UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) → Quando você dá um duplo clique sobre o UserForm
UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) → Quando você fecha o UserForm
UserForm_Resize → Quando você redimensiona o UserForm

E pra cada tipo de objeto, existem os seus eventos.

Espero ter sido claro.

Grande abraço.

 
Postado : 12/04/2015 8:32 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

eu uso DropButtonClick no combobox para chamar a macro que preenche

tentei usar outras maneiras mas não consegui

na propria macro eu faço o encadeamento de preenchimento dos outros dependentes ou direto

como o preenchimento vai ser feito por escolhas multiplas não vai ser na iniciação,

A minha duvida é por que não vejo outros exemplos de preenchimento sem ser com UserForm_Initialize

 
Postado : 12/04/2015 10:27 pm
(@laennder)
Posts: 62
Trusted Member
 

Provavelmente você não encontra pois na grande maioria das vezes o carregamento não depende de encadeamentos, e o preenchimento na inicialização do formulário ser o suficiente.

 
Postado : 13/04/2015 4:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edcronos eu não compreendi o que pretende, com o colega laennder disse são apenas Eventos do UserForm, e vai depender do que pretende para ver qual deles é a melhor opção, alem do Initialize temos tambem o Activate, mas as ações são distintas :
A principio nenhum Evento preenche automaticamente outros controles, a não ser que contenha instruções dentro do evento indicando o que fazer.

O evento Initialize ele é chamado quando o formulário é carregado pela primeira vez em memória. O evento Activate ocorre quando o formulário é exibido pela primeira vez.

Se você exibir o formulário usando o método Show, os dois eventos são chamados, um imediatamente após o outro (mas sempre o Initialize primeiro)

Se a intensão é preencher ComboBox ou outros objetos quando chamar o formulário terá de utlizar o Initialize com chamada as instruções correlatas.
Se pretende preencher após o carregamento do Formulário sem ser automático, poderá estar utilizando o Evento : UserForm_Click ou UserForm_DblClick.

 
Postado : 13/04/2015 8:45 am
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

não quero usar esse evento,
apenas entender pq só se acha exemplos desse tipo

quando eu estava procurando achar uma maneira de preenchimento automático não achei nenhum exemplo pratico,
tinha até alguns que fechava e reabria o userform para atualizar os valores

quando eu estava tentando fazer para mim acabei abrindo esse topico
viewtopic.php?f=23&t=11337

outros métodos só uso para ações compostas

bem, acho que a duvida está bem generica
e eu nem sei como reformular a pergunta ou dar uma explicação melhor

o certo seria até trancar o topico

 
Postado : 13/04/2015 9:41 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edcronos, se não quer utilizar este Evento, tem que associar as instruções ou Procedimento a algum CommandButton ou a algum Evento de algum controle.
Se queremos preencher controles que estão dentro de um formulário, podemos utilizar qualquer um dos Eventos, logicamente como já foi dito só o Evento não preenche nada e sim as instruções que estão sendo chamadas dentro do Evento.
Se não queremos utilizar nenhum Evento podemos associar as instruções a um CommandButton, ou aos eventos pertencentes aos controles, tipo o que fez "DropButtonClick no combobox", e mesmo assim como se trata de um dos Eventos deste controle, o mesmo só funcionará se tiver instruções indicando o que é para se fazer ao acionarmos este Evento.
Então até onde eu sei, não tem como preencher automaticamente outros controles sem ser atraves de instruções associadas a algum Evento do UserForm ou dos Controles.
Quanto aos modelos, geralmente se utiliza mais o Initialize, por isso encontrar mais exemplos com este evento.

[]s

 
Postado : 13/04/2015 11:36 am
(@laennder)
Posts: 62
Trusted Member
 

Apenas complementando o que o Mauro disse, até quando você utiliza um CommandButton você está utilizando um evento. Normalmente o evento Click. Os eventos são praticamente a base de todas as ações desencadeadas no VBA.

Sub CommandButton1_Click()

End Sub

O que você tem que fazer é determinar quando você quer que o seu combobox seja preenchido, e escolher o evento mais pertinente a essa tarefa.

 
Postado : 13/04/2015 1:05 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

eu utilizo assim

    Private Sub Setor_Ori7_DropButtonClick()
    Call PreencheCombobox(Me.ActiveControl, Me.Controls("Plan" & Right(Me.ActiveControl.Name, 5)))
    End Sub

    Private Sub Setor_Destino_DropButtonClick()
    Call PreencheCombobox(Me.ActiveControl)
    End Sub[/list:u:1jb75lf7]

    esse evento me dá valores instantâneos, assim que clica na combo

    mesmo esse tem suas particularidades, mas eu consegui contornar
    viewtopic.php?f=10&t=15328

    o fato é eu não consegui usar outros eventos,
    Mas já tem tempo, agora talvez eu consiga entender e implementar
    os outros eventos eu consegui apenas com valores unicos, cada tinha suas teimosias

    esse DropButtonClick por exemplo preenchia a combo mas não deixava escolher
    ou então criava varias copias dos mesmo conteúdos
    mas a partir d testes eu solucionei os problemas

    espero que litas sejam iguais aos combobox "pelo menos já sei usar"

     
Postado : 13/04/2015 2:25 pm