Notifications
Clear all

Fluxo de caixa Diario

15 Posts
2 Usuários
0 Reactions
3,765 Visualizações
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Pessoal do forum boa noite,
Preciso de uma força de vcs para criar uma função no vba,
Eu tenho uma planilha(segue em anexo)onde eu filtro dados da plan2 e da plan 8 e jogo tudo na plan11
eu precisava que ele somase os valor, por exemplo coluna D(que faz parte da coluna fornecedor) somase atravez do criterio de datas que está na coluna J, e me jogasse o valor total daquala data na data base da coluna K (valor fornecedor).O mesmo processo com a coluna clientes
No final na coluna M tem saldo que fica assim Na coluna N tenho saldo total Da plan8 menos saldo plan2 , então o calculo tinha q ser assim como se fosse diario, para mim ver se teve saldo positivo ou negativo na quela data
Sistematica do saldo ficaria assim
coluna N1 + saldo da coluna M2
ai esse saldo acumularia para o proximo dia
tipo assim
valor base 9.972,12
saldo do dia 22/06/2012 valor cliente menos valor fornecedor =124,25 + mais data base 9.972,12 saldo então 10.096,37
saldo do dia 25/06/2012 valor cliente menos valor fornecedor = -525,25 + mais saldo anterior de 10.096,37 saldo então 9.571,12
e assim por diante como um fluxo de caixa mostrando o saldo diario e meu dinheiro em caixa tambem

Ele é bem complicadinho assim mesmo, espero q a explicação esteja boa srs, mas no anexo da para ajudar entender como é essa explicação
obrigado
abraços

 
Postado : 05/05/2012 5:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Vai ter que detalhar muito mais do que isso, ou eu não percebi nada do que queres.

Eu entendi onde quer chegar mais tem m detalhe, eu preciso saber, de que maneira na Plan2 e Plan8 eu vou separar cliente e Fornecedor, é em cada guia? ou tem os dois em cada guia?
Que data devo considerar ? Plan2 (Vencimento,Data Entrada) ou Plan8 (Vencimento,Data)??

Se não podermos entender como funciona sua planilha e seu objetivo e como quer os cálculos ou o parâmetro para tal, não basta sabermos Excel para te ajudar, pelo menos eu preciso entender bem o que precisa!!

Outra coisa, eu fiz duas ou três postagem baseada no que precisa use a pesquisa do fórum!!!!

viewtopic.php?f=20&t=4173

Att

 
Postado : 05/05/2012 5:30 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

entendi alexandre, esquece a plan 2 e plan 8, a sistematica é tudo na plan11 mesmo
a função que separa as informações que quero para jogar na plan11 eu tenho
problema mesmo está na hora de faze a formula no vba, eu consegui fazer ela atravez de codigo nas celulas
como está no exemplo em anexo
as formulas que está nesse exemplo queria jogar no vba, mais seguro

Eu (AlexandreVBA), postei seu arquivo com a solução e COMPCTADO!!!

 
Postado : 05/05/2012 6:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Veja se isso te ajuda

Sub AleVBA()
    Dim rng As Range
    Dim ws As Worksheet
     
    Set ws = Sheets("Plan2")
    Set rng = ws.Range("J110").End(xlUp).Offset(, 10)
     
    With ws.Range("K2").Resize(rng.Row - 2 + 1, 1)
    .Formula = "=SUMPRODUCT(($E$2:$E$1600=J2)*($D$2:$D$1600))"
    .Offset(0, 1).Formula = "=SUMPRODUCT(($I$2:$I$1600=J2)*($H$2:$H$1600))"
    .Offset(0, 2).Formula = "=L2-K2+N1"
    End With
     
    End Sub

Pro favor lembre se de postar arquivos COMPACTADO!!!

Att

 
Postado : 06/05/2012 5:30 am
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Alexandre era isso mesmo, ta funcionando certinho, agora q paro de funcionar foi a plan inteira,
ta acontecendo o seguinte, hora que chamo o userform para fazer a operação que quero, na primeira vez que rodo a operação funciona tudo certo, na segunda vez que tendo roda a funções ele trava, já tentei muda faze algumas coisas lá e nada, como vc é crack nisso vc poderia dar uma olhada no que está acontecendo, esta em anexo o projeto que esto usando..

 
Postado : 06/05/2012 10:41 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Confira esse link: http://www.planilhando.com.br/forum/viewtopic.php?f=21&t=3586

 
Postado : 06/05/2012 4:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente..

Private Sub UserForm_Initialize()

    Dim i As Long
    
    For i = 1 To ListView1.ListItems.Count
    
    Next i
    
    Me.ListView1.ListItems.Clear
    Me.ListView1.ColumnHeaders.Clear
    Me.ListView1.View = lvwReport
    Me.ListView1.Gridlines = True
    Me.ListView1.ColumnHeaders.Add , , "N"
    Me.ListView1.ColumnHeaders.Add , , "Fornecedor"
    Me.ListView1.ColumnHeaders.Add , , "Banco"
    Me.ListView1.ColumnHeaders.Add , , "Valor Pago"
    Me.ListView1.ColumnHeaders.Add , , "Data"
    Me.ListView1.ColumnHeaders.Add , , "Cliente"
    Me.ListView1.ColumnHeaders.Add , , "Banco"
    Me.ListView1.ColumnHeaders.Add , , "Valor Rebido"
    Me.ListView1.ColumnHeaders.Add , , "Data"
    Me.ListView1.ColumnHeaders.Add , , "Data Base"
    Me.ListView1.ColumnHeaders.Add , , "Vr. Acumulado CP"
    Me.ListView1.ColumnHeaders.Add , , "Vr. Acumulado CR"
    Me.ListView1.ColumnHeaders.Add , , "Saldo"
    Me.ListView1.ColumnHeaders(1).Width = 0
    Me.ListView1.ColumnHeaders(2).Width = 170
    Me.ListView1.ColumnHeaders(3).Width = 0
    Me.ListView1.ColumnHeaders(4).Width = 70
    Me.ListView1.ColumnHeaders(5).Width = 70
    Me.ListView1.ColumnHeaders(6).Width = 170
    Me.ListView1.ColumnHeaders(7).Width = 0
    Me.ListView1.ColumnHeaders(8).Width = 70
    Me.ListView1.ColumnHeaders(9).Width = 70
    Me.ListView1.ColumnHeaders(10).Width = 90
    Me.ListView1.ColumnHeaders(11).Width = 90
    Me.ListView1.ColumnHeaders(12).Width = 90
    Me.ListView1.ColumnHeaders(13).Width = 90

End Sub
 
Postado : 06/05/2012 6:17 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

o alexandre o que vc ta dizendo ai em cima, é q esse codigo q está travando a operação do meu programa, pq não entendi muito bem que vc quis dizer..

 
Postado : 06/05/2012 8:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Fez os teste? tinha micros detalhes que estava faltando.

Me diga exatamente o que esta acontecendo
Att

 
Postado : 07/05/2012 5:19 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tente a seguinte alteração, por favor.

Em

Private Sub btnFiltrar_Click()

pegue a linha

Plan11.Range("A2:M65000") = ""

e substitua por

Plan11.Range("A2:M65000").ClearContents
 
Postado : 07/05/2012 6:57 am
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

o defeito estava ai mesmo joseA "Plan11.Range("A2:M65000") = ""eu fiz de tudo lá na minha plan, eu olhei o codigo que o alexandre passo e tudo, nunca imaginei que o defeito estava ai, só quem manja muito nisso, assim como voces aqui no forum, conseguem enxergar essas coisas

Obrigado mesmo pela ajuda, era ultima parta que faltava para termina meu programa, uffaa...

òtima semana a todos do forum
abrass

 
Postado : 07/05/2012 1:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Acontecia que vc preenchia de A2:M65000, uma a uma, as células com o valor "". Agora vc limpa diretamente.

Uma outra maneira de ganhar velocidade seria:

Dim UltLinha As Integer
'Armazena o nº da Ultima linha preenchida
UltLinha = Plan11.Cells(rows.Count, "A").End(xlUp).Row
Plan11.Range("A2:M" & UltLinha).ClearContents

Daí vc só limparia as células realmente com valores. ;)

 
Postado : 07/05/2012 2:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Já que minha 2 postagem onde está total relacionada a sua duvida topico, seria justo clicar na mãozinha!!

 
Postado : 07/05/2012 5:27 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Fico show com esse codigo alexandre, obrigado pela ajuda!
Só uma duvida com a mãozinha, vc pode click no mesmo topico mais de uma pessoa que ajudo voce?

 
Postado : 08/05/2012 5:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

se duas ou mais pessoas te ajudaram e foi útil, pode sim!!!

Att

 
Postado : 08/05/2012 5:14 am