Notifications
Clear all

Executar Rotina Dependendo da Origem do Comando

8 Posts
2 Usuários
0 Reactions
1,460 Visualizações
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Bom dia pessoal,

Preciso saber como colocar um IF dentro de um UserForm_Activate para ele olhar a origem do comando, ai dependendo da origem ele executa ou não a rotina que está ali dentro. Tem como fazer isso?

Exemplo real: Tenhos vários Forms no arquivo. Se o Formulário chamado "Relatório_Técnico" for aberto pelo formulário "Escolher", então eu quero que ele execute a rotina "Preenche Ficha". Mas, se o Formulário "Relatório_Técnico" for aberto pelo formulário "Pesquisar", então eu não quero que a rotina "PreencheFicha" seja executada.

é possível colocar esse "IF" olhando "para trás"??

No aguardo e Obrigado.

 
Postado : 01/07/2013 8:08 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Se poder disponibilizar seu arquivo modelo compactado, para que o pessoal possa ajuda-lo.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/07/2013 9:50 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


A sugestão do Alexandre ajuda... porém, de qualquer maneira, a resposta é Sim...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/07/2013 10:02 am
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

OK.

O arquivo onde está a programação é o Formulário. Muita informação presente foi removida por segurança, mas nada que impeça o "correto" funcionamento.

Para deixar claro meu problema, é o seguinte:

Existem os números de ficha..no caso os JJxxxx (onde o xxxx é a sequência númerica e o JJ vem das iniciais do usuário). Quando eu vou criar uma ficha, o evento Form_activate (em ambos os forms - Relatório técnico e Relatório Comercial) busca o próximo número e já preenche o campo com o número correto.
No entanto, quando eu faço uma pesquisa, na hora que o Formulário abre, ao invés da ficha estar preenchida com o número de ficha pesquisado ela está trazendo o próximo numero da ficha. Por isso eu quero fazer esse IF. Se o Form abrir a partir do form de pesquisa, ele tem que manter o valor pesquisado e não trazer o valor novo.

Aproveitando, estou com um problema em relação a data. Apesar de ter configurado, tanto no arquivo Formulário, como no arquivo DB_Relatório, quando eu faço a pesquisa ele me retorna o dia e o mes invertidos. Se puderem dar uma olhada nisso também!!

Para testar, meu login e senha são "Jorge", mas vocês poderiam achar isso facilmente se procurarem.

Att,
Jorge.

 
Postado : 01/07/2013 11:09 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue uma possibilidade:
Adicione em seu formulário Relatório um label (chame-o de Origem por exemplo), deixe-o como visible = false
No formulário Escolher inclua na rotina a linha conforme abaixo:

Private Sub CommandButton2_Click()
    Unload Me
    Relatório_Técnico.Origem.Caption = "Escolher"
    Relatório_Técnico.Text_Técnico = Usuário
    Relatório_Técnico.TextBox_Data = Format(Date, " dd / mm / yyyy")
    Relatório_Técnico.Show
End Sub

Na abertura do formulario Relatório:

Private Sub UserForm_Activate()
If Origem.Caption = "Escolher" Then
    PreencheFicha
End If
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/07/2013 11:54 am
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Reinaldo, muito obrigado. Aparentemente, solução rápida e perfeita. Já apliquei e está funcionando conforme eu gostaria. Vou acompanhar para ver se não aparece nenhuma outra complicação.

Alguém viu alguma coisa sobre a inversão da data?

Até amanhã fecho o tópico se não houverem mais respostas. Joinha dado.

Att,
Jorge.

 
Postado : 01/07/2013 12:13 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Macabruz, poderia ter feito um modelo mais simples, duvidas em modelos deste tamanho estão mais para Consultoria do que uma simples ajuda, não rodei o seu modelo e o mesmo tem muitas rotinas a serem analisadas que demandam mais tempo disponível, então como o Reinaldo já solucionou uma parte, dando uma olhada por cima na rotina de Pesquisa, e já que disse que as formatações estão corretas, e nesta questão vale sempre lembrar que infelizmente o VBA ou office enxergam de forma diferentes a questão Datas o qual utilizam o padrão internacional.

Opa, estou fugindo da questão, experimente allterar na ou nas linhas para o tipo de conversão de Datas, conforme abaixo :

.CDate(TextBox_Data.Text) = C.Offset(0, 1).Value

De uma olhada nos tópicos abaixo, e se utilizar a Pesquisa no Forum encontrara inumeros posts sobre esta mesma questão.
Data Invertida [Resolvido]
viewtopic.php?f=23&t=6022

FORMATAR DATA EM COLUNA COM DUAS FORMATAÇÃO [Resolvido]
viewtopic.php?f=10&t=4585

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/07/2013 6:20 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Mauro, obrigado, irei testar.

Apenas esclarecendo, sei que o modelo é "grande" e requer muito mais uma consultoria do que uma simples ajuda.
No entanto, entenda que eu parti de um conhecimento 0 em VBA e com muita pesquisa, e a ajuda de vocês em alguns pontos, consegui montar esse arquivo para gerenciar fichas de serviço, e com isso abolimos as fichas feitas em papel.
Estamos avaliando isso, e se funcionar bem, provavelmente iremos contratar um especialista para reaizar todo o desenvolvimento corretamente..pois como vocês devem ter visto a minha programação até funciona, mas é muito "braçal", ou seja, coisas que vocês teriam feito com uma ou 2 linhas de programação...e eu escrevi quase um livro para isso...

Aqui eu costumo deixar apenas perguntas pontuais..então axo que tudo bem..ou não?

Att,
Jorge.

 
Postado : 01/07/2013 9:38 pm