Notifications
Clear all

soma.ses/conta.ses no vba

8 Posts
2 Usuários
0 Reactions
1,720 Visualizações
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Saudações amigos do fórum

Tenho a seguinte situação

No form de indicadores, tenho o exemplo de duas labels, ao iniciar o form preciso que ela mostre quanto a empresa já vendeu esse mês, então ela precisaria ir na guia Vendas, usar o critério que será o mês atual e somar as vendas ... e na label seguinte é quase a mesma coisa, mas ao invés de somar, ela precisa contar quantas vendas foram feitas até então no mês, alguém poderia me ajudar?

 
Postado : 22/01/2014 7:40 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sem "ver" o projeto fica difícil, mas seria algo +/- assim
No evento initializate ou activate do formulário:

Dim uLinha As Long, x As Long
Dim tVendas As Currency, qVendas As Long
uLinha = Worksheets("Vendas").Cells(Cells.Rows.Count, "a").End(xlUp).Row
With Worksheets("Vendas")
'supondo que os registros iniciem na linha 2
'supondo que o mes seja na coluna A e valor na coluna B
For x = 2 To uLinha
    If Month(.Cells(x, 1)) = Month(Date) Then
        tVendas = tVendas + .Cells(x, 2)
        qVendas = qVendas + 1
    End If
Next
label_TotalVEndasnomês.Caption = tVendas
label_QtdeVendasnomês.captio = qVendas
End With

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

 
Postado : 22/01/2014 7:56 am
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Caro Reinaldo;

Obrigado pela atenção.

Montei uma planilha de teste para tentar utilizar o código que vc me passou e funcionou perfeitamente, porém quando insiro o código na minha planilha do projeto que estou montando gera o erro "Function não definida". Segue anexo uma versão da planilha, é só vc iniciar o vba, em Form_Geral, no evento initialize, pus um comentário bem destacado lá, se vc puder me ajudar.

 
Postado : 22/01/2014 8:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bem em seu modelo enviado, há vários erros, com trechos de código "perdidos" .
Mas voltando à soma, vc adicionou a sub atualizarlabels no modulo1 porem como private, assim sendo a mesma não fica visível aos demais módulos; motio do erro reportado.
Mova essa Private sub atualizarlabels() do modulo 1 para o modulo do Form_Geral que devera funcionar

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

 
Postado : 22/01/2014 9:10 am
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Funcionou perfeitamente, obrigado!

Só uma dúvida, quando for 2015 por exemplo, ele vai somar somente o mês de janeiro de 2015 ? ou teríamos que colocar um outro critério?

 
Postado : 22/01/2014 9:33 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Deverá se considerado tambem o ano
Algo assim:

...    If Month(.Cells(x, 1)) = Month(Date) and year(.cells(x,1)=year(date) Then....

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

 
Postado : 22/01/2014 9:36 am
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Excelente!! Muito obrigado, tópico resolvido

 
Postado : 22/01/2014 9:40 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

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

 
Postado : 22/01/2014 2:26 pm