Ola pessoal, estou com um duvida, que os amigos possam me ajudar
Tenho um gerador de parcelas, que roda certinho, tanto por mês, como por dias.
Ele pula os finais de semana caso a data caia nesses dias, mas esse é o problema caso a parcela seja diária
Explico: Gero 10 parcelas com intervalos de 1 dia, com data de inicio 27/07 e fica assim:
Dt Venc
27/07/2018
30/07/2018
30/07/2018
30/07/2018
31/07/2018
01/08/2018
02/08/2018
03/08/2018
06/08/2018
06/08/2018
Veja que ela roda as 10 parcelas, mas os dia que cai no sabado e domingo ele se acumula tudo na segunda
A ideia é nao contar o final de semana e deveria ficar assim
Dt Venc
27/07/2018
30/07/2018
31/07/2018
01/08/2018
31/08/2018
01/08/2018
02/08/2018
03/08/2018
05/08/2018
06/08/2018
o código que utilizo é esse
Dim sDT As String
Dim DT As Date
Dim freqNum As Long
Dim freq As String
Dim db As DAO.Database, rs As DAO.Recordset
Dim ValParc As Currency, i As Byte
Set db = CurrentDb()
Set rs = db.OpenRecordset("TblLancamento") 'Abre tbl_Parcelas
If Me.fraFrequencia.Value = 0 Then
freqNum = Me.TxtMes
freq = "M"
Else
freqNum = Me.txtNumDias
freq = "d"
End If
ValParc = Me.TxtValor 'Valor de cada Parcela
For i = 1 To Me.txtNumParcelas 'Insere as Parcela na Tabela
rs.AddNew
rs("Lancamento_Banco") = TxtBanco
rs("Lancamento_Parcela") = i
rs("Lancamento_Valor") = ValParc
rs("Lancamento_Banco") = TxtFavorecido
rs("Lancamento_Banco") = TxtCCorrente
'Calcula as datas de Vencto através da função DateAdd()
sDT = DateAdd(freq, i * freqNum, Me.TxtData)
DT = CDate(sDT) '' Converto a data (string) em data (date)
'' Abaixo, testo se o vencimento cai no sábado ou domingo,
'' se cair, passo para a primeira segunda-feira
If Weekday(DT) = 1 Then
DT = DateAdd("d", 1, DT)
ElseIf Weekday(DT) = 7 Then
DT = DateAdd("d", 2, DT)
End If
rs("Lancamento_DtVencimento") = DT
rs.Update
Next
rs.Close
db.Close
Call Confirma("Confirmação de dados!", "* " & txtNumParcelas & "", "Parcelas geradas com sucesso.", _
"REG_ContaPagar")
Me.BtTxt.SetFocus
MakeTransparent Me.hWnd, 100
Obrigado e aguardo um possível ajuda
Tenho um gerador de parcelas, que roda certinho, tanto por mês, como por dias.
Ele pula os finais de semana caso a data caia nesses dias, mas esse é o problema caso a parcela seja diária
Explico: Gero 10 parcelas com intervalos de 1 dia, com data de inicio 27/07 e fica assim:
Dt Venc
27/07/2018
30/07/2018
30/07/2018
30/07/2018
31/07/2018
01/08/2018
02/08/2018
03/08/2018
06/08/2018
06/08/2018
Veja que ela roda as 10 parcelas, mas os dia que cai no sabado e domingo ele se acumula tudo na segunda
A ideia é nao contar o final de semana e deveria ficar assim
Dt Venc
27/07/2018
30/07/2018
31/07/2018
01/08/2018
31/08/2018
01/08/2018
02/08/2018
03/08/2018
05/08/2018
06/08/2018
o código que utilizo é esse
Dim sDT As String
Dim DT As Date
Dim freqNum As Long
Dim freq As String
Dim db As DAO.Database, rs As DAO.Recordset
Dim ValParc As Currency, i As Byte
Set db = CurrentDb()
Set rs = db.OpenRecordset("TblLancamento") 'Abre tbl_Parcelas
If Me.fraFrequencia.Value = 0 Then
freqNum = Me.TxtMes
freq = "M"
Else
freqNum = Me.txtNumDias
freq = "d"
End If
ValParc = Me.TxtValor 'Valor de cada Parcela
For i = 1 To Me.txtNumParcelas 'Insere as Parcela na Tabela
rs.AddNew
rs("Lancamento_Banco") = TxtBanco
rs("Lancamento_Parcela") = i
rs("Lancamento_Valor") = ValParc
rs("Lancamento_Banco") = TxtFavorecido
rs("Lancamento_Banco") = TxtCCorrente
'Calcula as datas de Vencto através da função DateAdd()
sDT = DateAdd(freq, i * freqNum, Me.TxtData)
DT = CDate(sDT) '' Converto a data (string) em data (date)
'' Abaixo, testo se o vencimento cai no sábado ou domingo,
'' se cair, passo para a primeira segunda-feira
If Weekday(DT) = 1 Then
DT = DateAdd("d", 1, DT)
ElseIf Weekday(DT) = 7 Then
DT = DateAdd("d", 2, DT)
End If
rs("Lancamento_DtVencimento") = DT
rs.Update
Next
rs.Close
db.Close
Call Confirma("Confirmação de dados!", "* " & txtNumParcelas & "", "Parcelas geradas com sucesso.", _
"REG_ContaPagar")
Me.BtTxt.SetFocus
MakeTransparent Me.hWnd, 100
Obrigado e aguardo um possível ajuda