Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Setar flag em um formulário

Dúvidas gerais sobre Excel
lfcavaca
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jul 31, 2013 5:46 pm

Setar flag em um formulário

Mensagem por lfcavaca »

Pessoal,

Estou com problema que deve ser bem simples para os craques desse fórum e peço ajuda a esse time...

Tenho uma planilha que chama um formulário para que eu especifique o mês que eu quero gerar um relatório, porém, mesmo quando pressionava o botão de cancelar, o "print preview" do relatório acabava acontecendo. Então eu criei uma "flag" boolean (cancel_fl), para que na hora em que eu pressionasse o botão "Cancelar" ela assumiria o valor "True" e quando eu apertasse o botão "Ok" ela assumiria o valor "False". Na rotina de chamada eu coloquei um if para testar a situação da flag e tomar a decisão de prosseguir com o preview do relatório ou não. O problema ocorre quando eu estabeleço o valor da flag ao clicar o botão "Cancelar", na saída do formulário de seleção do mês (Unload me), ela (a flag) retorna a situação anterior. Acho que os códigos abaixo poderão dar melhor visão sobre o que estou relatando.

O botão abaixo chama o formulário de seleção do mês.

Private Sub CommandButton4_Click()
Form_Mes.Show
If cancel_fl = True Then
Exit Sub
End If
Call Consolidado_Mensal
End Sub

O formulário de seleção do mês é bem simples tem o campo "drop down" do mês e os botões "Cancelar" e "Ok". Os códigos dos botões estão listados abaixo.

'Botão Cancelar
Private Sub BTN_Cancel_Mes_Click()
cancel_fl = True
Unload Me
End Sub

'Botão Ok
Private Sub BTN_OK_Mes_Click()
cancel_fl = False
apontador = Range("mes").Value
Range(Range("mes")).Value = Me.COMB_Mes.Value
Unload Me
End Sub

Agradeço a quem puder me ajudar.

Lúcio


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Setar flag em um formulário

Mensagem por Reinaldo »

Não consegui entender a demanda?
Pode ser mais uma explicação/exemplo??


lfcavaca
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jul 31, 2013 5:46 pm

Re: Setar flag em um formulário

Mensagem por lfcavaca »

Eu quero que a rotina encerre caso eu clique em cancelar no formulário do mês e, nesse caso, não haja "Print Preview" do relatório consolidado. A minha ideia de setar uma flag não deu certo.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Setar flag em um formulário

Mensagem por Reinaldo »

Precisaria "ver" a rotina que chama o formulário pois, aparentemente, simplesmente encerrando o mesmo a rotina anterior continua; poste um exemplo da mesma, se possivel


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


lfcavaca
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jul 31, 2013 5:46 pm

Re: Setar flag em um formulário

Mensagem por lfcavaca »

Já havia colocado na primeira mensagem, ai vão as rotinas...

'Chama o formulário Form_Mes - esse botão está posicionado na planilha "Menu"
Private Sub CommandButton4_Click()
Form_Mes.Show
If cancel_fl = True Then
Exit Sub
End If
Call Consolidado_Mensal
End Sub

O formulário de seleção do mês é bem simples tem o campo "drop down" do mês e os botões "Cancelar" e "Ok". Os códigos dos botões estão listados abaixo.

'rotina do Botão Cancelar do From_Mes seta em "True" a variável "cancel_fl"
Private Sub BTN_Cancel_Mes_Click()
cancel_fl = True
Unload Me
End Sub

''rotina do Botão Ok do From_Mes seta em "False" a variável "cancel_fl"
Private Sub BTN_OK_Mes_Click()
cancel_fl = False
apontador = Range("mes").Value
Range(Range("mes")).Value = Me.COMB_Mes.Value
Unload Me
End Sub


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Setar flag em um formulário

Mensagem por Reinaldo »

Desculpe, não havia lido com atenção.
Parece-me que ao "escolher" o mês no COMB_Mes (na rotina BotãO ok), esse valor é salvo na planilha : -->Range(Range("mes")).Value = Me.COMB_Mes.Value
Não entendi a referencia --> Apontador = Range("mes").Value , pois pelo postado, não tem utilidade
Então poderia na rotina "Botão Cancelar" salvar um valor nulo ("") e criticar esse valor na rotina que chama o formulário;
Seria algo +/- assim

Código: Selecionar todos

Private Sub CommandButton4_Click()
Form_Mes.Show
If Range("mes").Value <> "" Then
    Call Consolidado_Mensal
End If
End Sub
'..........................................
Private Sub BTN_Cancel_Mes_Click()
Range(Range("mes")).Value = ""
Unload Me
End Sub
'.......................................
Private Sub BTN_OK_Mes_Click()
apontador = Range("mes").Value
Range(Range("mes")).Value = Me.COMB_Mes.Value
Unload Me
End Sub


lfcavaca
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jul 31, 2013 5:46 pm

Re: Setar flag em um formulário

Mensagem por lfcavaca »

Até pensei em tirar da mensagem para não confundir :)

É apenas uma pequena peculiaridade para definir se o mês é de entrada ou de saída. O resultado é apenas um indexador na planilha, usando função Indireto :) mas para o caso em questão, pode ser desconsiderado.

Vou experimentar a sua sugestão. Eu já entendi a proposta, acho que vai funcionar.

Valeu.


lfcavaca
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jul 31, 2013 5:46 pm

Re: Setar flag em um formulário

Mensagem por lfcavaca »

Não deu certo, está dando um erro "método range do objeto _worksheet falhou". Já tentei de diversas formas, mas não consegui.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Setar flag em um formulário

Mensagem por Reinaldo »

Interessante, pois não é o mesmo método utilizado nos outros botões??


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder