Notifications
Clear all

Soma condicional VBA

3 Posts
2 Usuários
0 Reactions
961 Visualizações
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Boa noite, tudo certo?!

Segue em anexo o arquivo com o exemplo.

Fiz um exemplo para demonstrar o que preciso fazer via programação VBA.

COMO UTILIZAR A PLANILHA:
1) Ao apertar no botão teste irá abrir um formulário;
2) Escolher por qual opção filtrar os resultados;
3) Informar a data INICIAL e FINAL que se deseja obter a soma do resultado;
4) Ao apertar no botão FILTRAR (do formulário), aparecer os resultados das somas do que ENTROU, do que SAIU e do SALDO.

OBJETIVO: Somar os valores da coluna "Peso [kg]", de acordo com o "DESTINO" (LAND/METALMAR/TERCEIROS) escolhido e o intervalo de acordo com a DATA INICIAL e DATA FINAL informada.

Fico muito grato se alguém puder me ajudar a programar o botão FILTRAR, do formulário.

 
Postado : 11/08/2015 9:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fiquei confuso com sua planilha, mas veja se auxilia

Private Sub cmdfiltrar_Click()

Dim datai As Date 'Data inicial informada no formulário
Dim dataf As Date 'Data final informada no formulário
Dim soma As Long, PesoE As Double, PesoS As Double
Dim Tipo As String

datai = lbldatai
dataf = lbldataf

If op_land = True Then

    Tipo = "LAND"
ElseIf op_metalmar = True Then
    Tipo = "METALMAR"
ElseIf op_terceiros = True Then
    Tipo = "CLIENTE"
Else
    Tipo = "*"
End If


With Sheets("PERFIS_Estoque")
For x = 8 To Cells(Cells.Rows.Count, "A").End(xlUp).Row
    If .Cells(x, "I") >= datai And .Cells(x, "I") <= dataf And .Cells(x, "F") Like Tipo Then
        PesoE = PesoE + .Cells(x, "E")
    End If
    If .Cells(x, "X") >= datai And .Cells(x, "X") <= dataf And .Cells(x, "U") Like Tipo Then
        PesoS = PesoS + .Cells(x, "T")
    End If
Next
End With

txtentrou.Text = PesoE
txtsaiu.Text = PesoS
txtsaldo.Text = txtentrou - txtsaiu
txtentrou.Text = Format(txtentrou, "#,##0.00")
txtsaiu.Text = Format(txtsaiu, "#,##0.00")
txtsaldo.Text = Format(txtsaldo, "#,##0.00")

End Sub

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

 
Postado : 12/08/2015 8:17 am
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Tchê... Muito obrigado pelo teu tempo reservado para me ajudar.

Abraço.

 
Postado : 12/08/2015 10:01 pm