Comparação com valo...
 
Notifications
Clear all

Comparação com valor armazenado variável pública

9 Posts
2 Usuários
0 Reactions
1,488 Visualizações
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

Saudações às pessoas deste fórum.

Estou cm a seguinte questão que gostaria de compartilhar com vc's e caso alguém possa dar uma mão ...sou-lhe muito grato!

Seguinte:

Nó "frm_anexo1_quest" tenho o evento "txt_icms_proprio_AfterUpdate" para a partir da variável "Public": "datAnterior" verificar se na sheets("Anexo1") há alguma data semelhante à que está armazenada na variável pública "datAnterior" que é definida ao preencher o "txt_periodo" do "frm_rbpa", após click no "btn_ok"; porém ao depurar o cód de "frm_anexo1_quest" a variável publica "datAnterior" está com "00:00:00", no entando deveria ser a data selecionada em "txt_periodo" do "frm_rbpa", no teste a data é 05/05/2018

No modulo do "frm_anexo1_quest"

 Private Sub txt_icms_proprio_AfterUpdate()

Dim lngPriLin, lngUltLin, lngLoopLin        As Long
Dim strBusca                                          As String

    lngPriLin = 2


With wshAnexo1
    
    lngUltLin = .Cells(.Rows.Count, 2).End(xlUp).Row
    'loop
    For lngLoopLin = lngPriLin To lngLoopLin Step 1

        strBusca = .Cells(lngLoopLin, 2)

        'comparação dos valores em loop para ver se há valor semelhante
        If strBusca = datAnterior Then
            'se houver valor semelhante então preenche os txt's com os demais dados do registro
            Me.txt_icms_proprio = Format(CCur(.Cells(lngLoopLin, 3)), "R$ #,###.00")
            Me.txt_icms_st = Format(CCur(.Cells(lngLoopLin, 4)), "R$ #,###.00")
            Exit Sub
        Else
            'se não vazio
            Me.txt_icms_proprio = ""
            Me.txt_icms_st = ""
        End If

    Next lngLoopLin

End With


End Sub

No módulo "Módulo1" defini:

Public datAnterior As Date

No "btn_ok" do "frm_rbpa":

datAnterior = CDate(Me.txt_periodo.Value)

Quando for abrir a planilha ela abrirá em pop-up, para ter acesso à woorkbook é só clickar na extremidade do canto inferior esquerdo

Segue link: https://www.dropbox.com/s/32rh6umbelnga ... .xlsm?dl=0

 
Postado : 06/06/2018 2:15 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

AMORIM123,

Não consegui entender ainda aonde está o problema que você relata. Veja, no seu arquivo, apenas desabilitei (com comentários) algumas funções que não estavam rodando aqui no meu micro e executei o formulário frm_rbpa. Entrei com uma data no primeiro campo de texto desse form, com 2 valores nos dois outros textbox e cliquei no botão OK. Ele abre o form com o treevew. Abri a árvore (Simples Nacional/Receitas no Mercado Interno/ANEXO 1 e cliquei em Revenda de Mercadorias. Nesse ponto, coloquei uma Msgbox para que seja exibida o valor da variável DatAnterior. Veja que a data que foi data entrada lá no form frm_rbpa é exibida normalmente na MsgBox. Depois disso seu formulário frm_anexo1_quest é aberto normalmente. Então inseri um valor qualquer no Textbox txt_icms_proprio e sai com TAB. o Evento txt_icms_proprio_AfterUpdate então é executado. Nesse momento também inseri uma msgbox para exibir o valor da variável DatAnterior. Veja que a data novamente é exibida normalmente.

Isso significa que a data está chegando tranquilamente no seu formulário e no respectivo evento. Assim, onde está o erro?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 06/06/2018 5:18 pm
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

Wagner, mais uma vez muito obrigado pela atenção

Agora estou sem PC.. mas amanhã estarei testando

O evento afterupdate é para ser executado ao abrir "frm_anexo1_quest" sem ser necessário digitar algo na "txt_icms_proprio" e sair dele na sequência...para tanto acredito que o evento afterupdate focado no "txt_icms_proprio" não seja o mais adequado...o objetivo final é pegar "datAnterior" e comparar cm o loop feito na coluna 2 da sheets("Anexo1") para ver se tem alguma data semelhante...havendo então...ele preenche os txt_icms_proprio e txt_icms_st com os demais dados do registro semelhante

 
Postado : 06/06/2018 8:15 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

AMORIM123,

Sim, entendi e vi que em determinados locais do seu código você faz a chamada a esse evento. Veja o código com as MsgBox que coloquei para verificar que a data inserida no forma anterior aparece até mesmo quando se está no formulário frm_anexo1_quest.

Uma coisa que vi rapidamente e nem comentei é que acho que esse loop a que você se refere não está correto. Examine.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/06/2018 6:08 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

wagner,

O evento "afterupdate" com foco no "txt_icms_proprio" possuí a instrução de loopar a partir da linha 2 coluna 2 da sheets("Anexo1") o valor armazenado em datAnterior, isto é, ver se há uma data semelhante à armazenada na public, no exemplo a data semelhante é 05/05/2018, ...havendo esta semelhança o "frm_anexo1_quest" deve ter seus txtbox's: "txt_icms_proprio" e "txt_icms_st" preenchidos com os demais dados do registro....se não houver registro semelhante ai ele retorno vázio.

A data armazenada na public realmente é repassada independênte da forma testada...vc testou com msgbox...eu havia testado assim, tbm é repassado o valor, porém acredito que meu problema esteja no foco do evento afterupdate, pois da forma que desejo que seja executada a ação ao abrir o form (INITIALIZE OU ACTIVATE):

Private Sub UserForm_Initialize()
                     .
                     .
                     .
  Sheets("Comum").Cells(1, 8).Value = datAnterior
                     .
                     .
end sub
 
Postado : 07/06/2018 6:15 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

sim ..sim... no loop tava faltando "exit for" antes do else ..tentei fazer alguns testes: comentei o evento afterupdate inteiro e copiei esse cód para dentro do evento initialize para ele rodar assim que o "frm_anexo1_quest" for inicializado...percebi que ele roda legal, porém ainda sem o preenchimento dos txtbox's: "txt_icms_proprio" e "txt_icms_st" como deveria ocorrer...pois há dados semelhantes (data semelhante: 05/05/2018)..

Link: https://www.dropbox.com/s/huwr9wdeia5aj ... .xlsm?dl=0

Não consegui armazenar aqui no fórum

 
Postado : 07/06/2018 11:11 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

era o loop...vlw meu amigo!

tou sem pc ai tava dificultando...a visualização..

 
Postado : 08/06/2018 5:24 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

AMORIM123,

Bom dia!

Valeu!

Peço, por gentileza, que não utilize citações de inteiro teor das mensagens que lhe são encaminhadas nas suas respostas. As citações, quando estritamente necessárias ao entendimento da mensagem por parte do seu interlocutor, devem restringir-se apenas a pequenos trechos.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/06/2018 6:12 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

blz...obrigado

 
Postado : 08/06/2018 10:37 am