Conciliação Multipl...
 
Notifications
Clear all

Conciliação Multipla

10 Posts
2 Usuários
0 Reactions
3,397 Visualizações
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Bom Dia

Estou Precisando mais uma vez da Ajuda de Vocês, tenho uma planilha com diversos fornecedores e tenho que fazer uma conciliação, atualmente faço isso manual Fornecedor por Fornecedor e gostaria de Agilizar o processo. Busquei ajuda aqui no forum e fiz algumas pesquisas na Internet e chegue no código seguinte, mas ele ainda não está funcionando do jeito que preciso se alguem puder solucionar o problema ou pensar em outra solução eu pensei em trabalhar com um Soma-Se multiplo.
Segue em anexo um modelo da minha planilha.

Obrigado

Function SOMASE2(Intervalo As Range, Criterio As Variant, Intervalo2 As Range, _
Criterio2 As Variant, Intevalo_Soma As Range) As Variant
'"=SOMASE2(B4:B" & j & ";" & COD &B4:B" & j & ";" & ";D4:D" & j & ") - SOMASE2(B4:B" & j & ";" & COD &B4:B" & j & ";" & ";D4:D" & j & ")"
Dim i As Integer

If Intervalo.Count = Intervalo2.Count And Intervalo2.Count = Intevalo_Soma.Count Then
    
    For i = 1 To Intervalo.Count
        If Intervalo.Cells(i, 1) = Criterio Then
            If Intervalo2.Cells(i, 1) = Criterio2 Then
                SOMASE2 = SOMASE2 + Intevalo_Soma.Cells(i, 1)
            End If
        End If
    Next i
End If
'Macro desenvolvida por _Mateus_
'E-mail: mateusags@yahoo.com.br

End Function

Sub REMOVER2()
Dim ws As Worksheet
Dim r As Long
lin = 3
j = Range("A65536").End(xlUp).Row
i = j

UltimaLinha = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1
ActiveSheet.Copy After:=Sheets(Sheets.Count)

    For r = i To 4 Step -1
    COD = Cells(i, 2).Address
    COD2 = Cells(i, 3).Address
    Range("H" & i).FormulaLocal = "=SOMASE2(B4:B" & j & ";" & COD & ";C4:C" & j & ";" & COD2 & ";E4:E" & j & ") - SOMASE2(B4:B" & j & ";" & COD & ";C4:C" & j & ";" & COD2 & ";F4:F" & j & ")"
    Range("H" & i).Value = Range("H" & i).Value
   
i = i - 1
Next r

For r = j To 4 Step -1
If Range("H" & r).Value = 0 Then Range("E" & r).EntireRow.Delete
   Range("H" & r).Value = ""
Next r

For r = 1 To j Step 1
If Range("D" & r).Value = "SALDO ANTERIOR" Then
Else
Range("G" & r).Formula = "=F" & r - 1 & "+D" & r & "-E" & r
End If
Next r

End Sub
 
Postado : 29/04/2013 9:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sem macro. Até 2 mil registros.

Na aba que criei, somente o que não foi conciliado permanece. Separei com uma linha a chave FORNEC/NF (lembre-se que por ser NF de fornecedores vc pode ter números repetidos de NF na base, ainda que de fornecedores diferentes).

Qq coisa me fala. Coloque mais dados e teste pois não tive tempo para isso.

Abs,

 
Postado : 30/04/2013 12:55 am
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Bom Dia Mandrix

E eu Achando Que VBA é Que era complicado, :shock: demorei um tempão pra entender o que você fez, tive até que pesquisar algumas funções na Internet.
Mas Infelizmente Pra mim esta solução ainda não é adequada. A planilha que postei é extremamente simplificada mas na realidade podem ocorrer alguns problemas

1 Trabalho com mais de 2.000 registros

2 No Caso de alguns fornecedores o Numero da NF e do Pagamento não são Iguais, por isso precisaria que os razões mantivessem a estrutura para que eu possa utilizar outros critérios de conciliação como Data Valor. Alguns também vão possuir saldo Anterior.

Então o Que eu quero é simplificar o razão para que eu possa analisar mais rápido e com maior facilidade, mas sem perder a estrutura original pois isso também me ajuda a conferir se a macro ou função cometeu algum erro Pois o saldo na planilha simplificada tem que ser igual ao da planilha Original.

De Qualquer forma obrigado pela atenção.

 
Postado : 01/05/2013 4:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

guma,

Tirei meia horinha e montei o layout exatamente como vc deseja. Aumentei para 5 mil linhas.

A única coisa que não está clara é a questão do saldo anterior. Meu modelo amarra FORNEC/NF e ordena por data. Que tal vc postar o arquivo completo para rastrearmos todas as possibilidades?

Bom... De qq maneira deixo o anexo para que vc veja que nem o layout nem o tamanho do arquivo são limitadores para sua demanda.

Abs,

p.s.- mesmo que alguém monte em VBA pra vc, é necessário esclarecer a questão do saldo anterior.

 
Postado : 02/05/2013 8:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tente algo assim...
Baixe o arquivo em:
http://www.sendspace.com/file/a04s59

Att

 
Postado : 04/05/2013 7:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

eu sou contra vba....

sugestão:
1) na coluna H, coloque a seguinte formula, para todas as linhas:
=SOMASE($C:$C;$C18;$F:$F)-SOMASE($C:$C;$C18;$E:$E)

2) selecione a linha 16 (seu cabeçalho) e inclua filtros
a) filtre pela coluna de datas, selecione os anos (ou seja, todas as datas, e desselecione o resto)
b) na coluna H filtre para exibir somente os valores 0 (ou 0,01)
4) após aplicar os filtros, selecione todas as linhas visíveis e mande-as pro espaço

importante:
um problema só, a coluna do saldo terá sua formulação zuada, pq depende das linhas a serem excluídas, portanto:
5) reescreva as fórmulas na coluna 4, para que atendam agora o novo intervalo, já sem as notas pagas....

sem exagero, o vba é bacana, e certamente faria isso mais rápido... porém, com esses 5 passos acima, vc manualmente faria tudo em menos de 15 minutos, na sua planilha toda, não importa quantas linhas ela tenha....

pensa nisso ;-)

 
Postado : 04/05/2013 9:25 am
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

O Código que eu postei não tem mesmo salvação ?

 
Postado : 06/05/2013 6:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!

Você testeou meu anexo???

Att

 
Postado : 06/05/2013 9:51 am
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Alexandre eu utilizei seu anexo, mas não obtive o resultado desejado. mesmo assim vou tentar destrinchar o código e ver se futuramente consigo adaptar
Utilizei a segunda formula do Mandrix e deu certo vou fazer assim mesmo.

Obrigado a todos pela Ajuda.

 
Postado : 06/05/2013 6:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Ok, o importante é você resolveu seu problema!!

Obrigado por retornar e marcar sua postagem como resolvido!!

At+++ ;)

 
Postado : 06/05/2013 7:01 pm