Notifications
Clear all

Função SE comparando datas inseridas por um formulário VBA

9 Posts
2 Usuários
0 Reactions
2,080 Visualizações
(@franz66)
Posts: 0
New Member
Topic starter
 

Olá, sou iniciante em excel e vba, portanto, me desculpem se a dúvida for banal ou absurda.
Tenho uma pasta de trabalho onde há uma coluna de uma planilha que recebe a data do sistema automaticamente através de um formulário vba.
Neste formulário há um outro botão que atualiza o saldo do dia em um textbox, que refere-se a célula que contêm a fórmula em questão, quando a forma de pagamento for em dinheiro( Din ).
Criei uma nova inserção automática em uma célula para a data afim de compara-la a data do dia, já que o que me interessa é o fluxo em Dinheiro do dia. Quando clico em " atualizar"( nome do meu botão), busco uma soma que obedece dois critérios, mas quando comparo as duas células que contém a data, a fórmula me retorna o valor falso (0).

=SE(JANEIRO!$A:$A=DADOS!A2;SOMASE(JANEIRO!$D:$D;"Din";JANEIRO!$C:$C);0)

Testei inserindo dados manualmente e a fórmula funciona perfeitamente, as células em questão estão formatadas como data, não sei mais o que fazer, o somase funciona normalmente, o problema está na comparação das datas. já tentei com somases e tb não funcionou.
Agradeço uma luz!!!
Abraço

 
Postado : 21/01/2016 8:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Franz

Sem testar na planilha fica fica complicado.

[]s

 
Postado : 22/01/2016 7:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Normalmente(Default) um TextBox "passa" sua informação como uma String(Texto)independentemente da formatação da celula que receberá o dado, assim datas e valores devem via de regra serem "convertidas"
Para datas pode-se utilizar Cdate --> SuaCelulaquerecebeovalort.value=cDate(suatextbox.text)

 
Postado : 22/01/2016 7:29 am
(@franz66)
Posts: 0
New Member
Topic starter
 

Olá, tentei usar a cdate, mas, sinceramente, não entendi muito bem, acho que na verdade é o inverso, quero que a data inserida na célula seja reconhecida como texto na célula, já que a fórmula busca os dados sem usar o vba. estou anexando um arquivo de exemplo. Obrigado desde já

 
Postado : 22/01/2016 9:31 am
(@franz66)
Posts: 0
New Member
Topic starter
 

estava testando de novo e agora ele está comparando as datas, mas considera o valor como texto, então não soma. Quando converto em número manualmete a fórmula funciona.

 
Postado : 22/01/2016 10:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Franz

Experimente mudar o código de:
ThisWorkbook.Sheets("plan1").Cells(Lin, 2).Value = TextBox2

Para:

ThisWorkbook.Sheets("plan1").Cells(Lin, 2).Value = CDbl(Me.TextBox2)

Assim o número é lançado na planilha como número e não texto.

Confira na planilha que os lançamentos que foram feitos a partir da mudança do código, já aparecem como números e são considerados na fórmula.

Dê retorno.

[]s

 
Postado : 22/01/2016 2:12 pm
(@franz66)
Posts: 0
New Member
Topic starter
 

Olá Patropi, obrigado pela dica. Com a alteração sugerida o exemplo funcionou perfeitamente, mas no meu trabalho não mudou nada, acredito ainda, que o problema esteja na comparação das datas. Vou anexar a minha planilha, não é muito extensa, a senha para acessar o arquivo estará em branco. Obrigado mais uma vez!!

 
Postado : 23/01/2016 5:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A soma a que se refere e na planilha dados linha 1 coluna C?
Caso seja a formula está errada, experimente utilizar C1=SOMASES(JANEIRO!$C:$C;JANEIRO!$A:$A;A2;JANEIRO!$D:$D;"din")

 
Postado : 23/01/2016 7:55 am
(@franz66)
Posts: 0
New Member
Topic starter
 

A soma a que se refere e na planilha dados linha 1 coluna C?
Caso seja a formula está errada, experimente utilizar C1=SOMASES(JANEIRO!$C:$C;JANEIRO!$A:$A;A2;JANEIRO!$D:$D;"din")

Olá Reinaldo, resolveu, deu certinho, eu estava comparando usando o sinal de igual e não estava rolando, já tinha tentado com o somases mas, na minha neófitidade, se é que essa palavra existe, e para não falar outra coisa, estava formulando errado..
Obrigado pela atenção de todos!!
Abraço

 
Postado : 23/01/2016 9:27 am