DATA NAS PARCELAS

MOREIRA 28/02/2010 20:38:03
#335620
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))
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



DAVERSON 28/02/2010 20:54:17
#335623
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



SINKERTEC 01/03/2010 06:57:19
#335628


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
TECLA 01/03/2010 09:35:47
#335632
Resposta escolhida
Tente assim:

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
DAVERSON 01/03/2010 09:59:42
#335634
que vc quer e ter uma variavel da data de pagamento da primeira entrada, que no exposto seria quinze dias, mas isso poderia variar entre varias prazos, 8 dias, 10dias, entao creio que vc deveria entrar com mais um txtbox onde vc informaria a quantidade de dias para a primeira parcela, e as demais seriam de 30/60/90/120/150...certo???

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
MOREIRA 01/03/2010 10:12:24
#335636
Bom, pessoal o propósito dessa rotina é.:
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
MOREIRA 01/03/2010 10:18:07
#335638
opa, nao tinha visto essas resposta acima.. vou testa...
MOREIRA 01/03/2010 11:19:26
#335640
Como informei no exemplo acima, na grid tem q começar com a data do primeiro vencimento ( A data q esta no campo Dt_Inicio )

Deverá ficar assim na grid
15-03-2010 --> 1ª Pagamento05-04-2010
05-05-2010
05-06-2010




TECLA 01/03/2010 11:27:21
#335641
Veja se resolve:

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
SINKERTEC 01/03/2010 11:37:59
#335642


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
MOREIRA 01/03/2010 11:39:46
#335643
Quase ficou 10...

A segunda parcela ficou mês 05, teria q ficar mes 04...


Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas