DATA NAS PARCELAS
vejam. estou informado a data inicial -> 28-02-2010
quantidade de parcelas = 03
Dia de vencimetno de cada parcela = 15
A Primeira data das parcela ficou como a mesma data Inicial - 28-02-2010
deveria ser assim a primeira parcela -->> 13-03-2010
o Código é esse..
Private Sub CmdGerar_Click()
Dim Valor, Dias As Variant
Dim Dt_Final As Variant
Dim Mes As Integer
Dim Ano As Integer
Dim Dia As String
Dim Parc As Double
[ô]--
Dim Linha As Integer
[ô] Validação
If Not IsDate(TxtDt_Inicio.Text) Or Not IsNumeric(TxtDia_Pagto.Text) Or Not IsNumeric(TxtPrazo.Text) Then
MsgBox ([Ô]Verifique os Dados Informados![Ô]), vbExclamation, [Ô]ATENÇÃO[Ô]
End If
G.Rows = 1 [ô]Limpa a Grid, Caso Altere a Quant Parcelas
[ô]Pega a data da primeira parcela
Valor = DateSerial(Year(TxtDt_Inicio.Text), Month(TxtDt_Inicio.Text), CInt(TxtDia_Pagto.Text))
For Linha = 1 To TxtPrazo.Text
Parc = CDbl(LblTotalVenda.Caption) / Val(TxtPrazo.Text) [ô] Valor de Cada Parcelas
With G
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = Format(Valor, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(.Rows - 1, 2) = Format(Parc, [Ô]###,##0.00[Ô])
End With
[ô]Incrementa [Ô]Valor[Ô] em 1 mês
Valor = DateAdd([Ô]m[Ô], 1, Valor)
Next Linha
End Sub
Citação::
pessoal, reabrir esse topico, estou com problemas com relação nas primeira data do vencimento nas parcelas..
vejam. estou informado a data inicial -> 28-02-2010
quantidade de parcelas = 03
Dia de vencimetno de cada parcela = 15
A Primeira data das parcela ficou como a mesma data Inicial - 28-02-2010
deveria ser assim a primeira parcela -->> 13-03-2010
o Código é esse..
Private Sub CmdGerar_Click()
Dim Valor, Dias As Variant
Dim Dt_Final As Variant
Dim Mes As Integer
Dim Ano As Integer
Dim Dia As String
Dim Parc As Double
[ô]--
Dim Linha As Integer
[ô] Validação
If Not IsDate(TxtDt_Inicio.Text) Or Not IsNumeric(TxtDia_Pagto.Text) Or Not IsNumeric(TxtPrazo.Text) Then
MsgBox ([Ô]Verifique os Dados Informados![Ô]), vbExclamation, [Ô]ATENÇÃO[Ô]
End If
G.Rows = 1 [ô]Limpa a Grid, Caso Altere a Quant Parcelas
[ô]Pega a data da primeira parcela
Valor = DateSerial(Year(TxtDt_Inicio.Text), Month(TxtDt_Inicio.Text), CInt(TxtDia_Pagto.Text))
aqui acho que estao erro
For Linha = 1 To TxtPrazo.Text
For Linha = 1 To TxtPrazo.Text pois vc deveria fazer o dataadd para sua primeira parcela
acho que e muito mais facil usar o Do While com Loop do que For
Citação:
Parc = CDbl(LblTotalVenda.Caption) / Val(TxtPrazo.Text) [ô] Valor de Cada Parcelas
With G
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = Format(Valor, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(.Rows - 1, 2) = Format(Parc, [Ô]###,##0.00[Ô])
End With
[ô]Incrementa [Ô]Valor[Ô] em 1 mês
Valor = DateAdd([Ô]m[Ô], 1, Valor)
Next Linha
End Sub
Uma pergunta
Se a data da compra for dia 01/03 e o dia do vencimento for dia 15, a primeira parcela cai para 15/03 ou 15/04?
Se a data da compra for dia 30/03 e o dia do vencimento for dia 1, a primeira parcela cai para 01/04 ou 01/05?
depois dessas respostas, podemos pensar algo
outra coisa...essa data de inicio num serve para nada
Private Sub CmdGerar_Click()
Dim Valor, Dias As Variant
Dim Dt_Final As Variant
Dim Mes As Integer
Dim Ano As Integer
Dim Dia As String
Dim Parc As Double
[ô]--
Dim Linha As Integer
[ô] Validação
If Not IsDate(TxtDt_Inicio.Text) Or Not IsNumeric(TxtDia_Pagto.Text) Or Not IsNumeric(TxtPrazo.Text) Then
MsgBox ([Ô]Verifique os Dados Informados![Ô]), vbExclamation, [Ô]ATENÇÃO[Ô]
End If
G.Rows = 1 [ô]Limpa a Grid, Caso Altere a Quant Parcelas
[ô]Pega a data da primeira parcela
Valor = DateSerial(Year(TxtDt_Inicio.Text), Month(TxtDt_Inicio.Text), CInt(TxtDia_Pagto.Text))
[ô]Incrementa a data, caso seja MENOR que a data de inÃcio
If CDate(Valor) < CDate(TxtDt_Inicio.Text) Then Valor = DateAdd([Ô]m[Ô], 1, Valor)
For Linha = 1 To TxtPrazo.Text
Parc = CDbl(LblTotalVenda.Caption) / Val(TxtPrazo.Text) [ô] Valor de Cada Parcelas
With G
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = Format(Valor, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(.Rows - 1, 2) = Format(Parc, [Ô]###,##0.00[Ô])
End With
[ô]Incrementa [Ô]Valor[Ô] em 1 mês
Valor = DateAdd([Ô]m[Ô], 1, Valor)
Next Linha
End Sub
Private Sub CmdGerar_Click()
Dim Valor, Dias As Variant
Dim Dt_Final As Variant
Dim Mes As Integer
Dim Ano As Integer
Dim Dia As String
Dim Parc As Double
[ô]--
Dim Linha As Integer
[ô] Validação
If Not IsDate(TxtDt_Inicio.Text) Or Not IsNumeric(TxtDia_Pagto.Text) Or Not IsNumeric(TxtPrazo.Text) Then
MsgBox ([Ô]Verifique os Dados Informados![Ô]), vbExclamation, [Ô]ATENÇÃO[Ô]
End If
G.Rows = 1 [ô]Limpa a Grid, Caso Altere a Quant Parcelas
[ô]Pega a data da primeira parcela
Valor = Dateadd([Ô]d[Ô], Cdate(TxtDt_Inicio.Text) + Cdate( txtNroDiasEntrada)) [ô] onde Valor seria a data do primeiro pagamento
[ô]ai segue normal
For Linha = 1 To TxtPrazo.Text
Parc = CDbl(LblTotalVenda.Caption) / Val(TxtPrazo.Text) [ô] Valor de Cada Parcelas
With G
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = Format(Valor, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(.Rows - 1, 2) = Format(Parc, [Ô]###,##0.00[Ô])
End With
[ô]Incrementa [Ô]Valor[Ô] em 1 mês
Valor = DateAdd([Ô]m[Ô], 1, Valor)
Next Linha
End Sub
1ª = Quero informar a data do primeiro pagamento --> 15-03-2010
2 ª = quantidade de parcelas -> 04
3ª = Dia de Vencimento das demais Parcelas -> 05
Então ficaria assim:
15-03-2010 --> 1ª Pagamento
05-04-2010
05-05-2010
05-06-2010
Deverá ficar assim na grid
15-03-2010 --> 1ª Pagamento05-04-2010
05-05-2010
05-06-2010
Private Sub CmdGerar_Click()
Dim Valor, Dias As Variant
Dim Dt_Final As Variant
Dim Mes As Integer
Dim Ano As Integer
Dim Dia As String
Dim Parc As Double
[ô]--
Dim Linha As Integer
[ô] Validação
If Not IsDate(TxtDt_Inicio.Text) Or Not IsNumeric(TxtDia_Pagto.Text) Or Not IsNumeric(TxtPrazo.Text) Then
MsgBox ([Ô]Verifique os Dados Informados![Ô]), vbExclamation, [Ô]ATENÇÃO[Ô]
End If
G.Rows = 1 [ô]Limpa a Grid, Caso Altere a Quant Parcelas
[ô]Pega a data da primeira parcela
Valor = DateSerial(Year(TxtDt_Inicio.Text), Month(TxtDt_Inicio.Text), CInt(TxtDia_Pagto.Text))
[ô]Incrementa a data, caso seja MENOR que a data de inÃcio
Valor = DateAdd([Ô]m[Ô], 1, Valor)
For Linha = 1 To TxtPrazo.Text
Parc = CDbl(LblTotalVenda.Caption) / Val(TxtPrazo.Text) [ô] Valor de Cada Parcelas
With G
If Linha = 1 Then
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = Format(TxtDt_Inicio, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(.Rows - 1, 2) = Format(Parc, [Ô]###,##0.00[Ô])
Else
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = Format(Valor, [Ô]dd/mm/yyyy[Ô])
.TextMatrix(.Rows - 1, 2) = Format(Parc, [Ô]###,##0.00[Ô])
End If
End With
[ô]Incrementa [Ô]Valor[Ô] em 1 mês
Valor = DateAdd([Ô]m[Ô], 1, Valor)
Next Linha
End Sub
Agora sim...explicado
Vamor lá
List1.AddItem txtDataInicio
ProxData = txtDataInicio
For X = 1 To txtNumParcelas- 1 [ô] numero de vezes
ProxData = Format(txtDiaPagto, [Ô]00[Ô]) & [Ô]/[Ô] & Format(DateAdd([Ô]m[Ô], 1, ProxData), [Ô]MM/YYYY[Ô])
List1.AddItem ProxData
Next X
A segunda parcela ficou mês 05, teria q ficar mes 04...