data fattura ( c5) 28-12-2005
condizione pagamento 30 gg data fattura
scadenza?
grazie
In questo caso, a che data corrisponderebbe la scadenza?
31-12-2005?
31-01-2006?
27-01-2006?
--
Ciao
Ignazio
"Ignazio" ha scritto:
> 28-01-2006
>
> > > data fattura ( c5) 28-12-2005
> > > condizione pagamento 30 gg data fattura
> > > scadenza?
> > In questo caso, a che data corrisponderebbe la scadenza?
> > 31-12-2005?
> > 31-01-2006?
> > 27-01-2006?
> > 28-01-2006
Prima di postare la formula, un'altra curiosità ...
Nel caso che la fattura viene emessa il 31-01-2006, quale dovrebbe essere la
scadenza pagamento a 30 gg?
--
Ciao
Ignazio
"Ignazio" ha scritto:
>28-02-2006
>
> > > > > data fattura ( c5) 28-12-2005
> > > > > condizione pagamento 30 gg data fattura
> > > > > scadenza?
> > > > In questo caso, a che data corrisponderebbe la scadenza?
> > > > 28-01-2006
> > Nel caso che la fattura viene emessa il 31-01-2006, quale dovrebbe
essere la
> > scadenza pagamento a 30 gg?
> >28-02-2006
Prova ad usare questa formula:
=DATA(ANNO(C5);MESE(C5)+1;MIN(GIORNO(C5);GIORNO(DATA(ANNO(C5);MESE(C5)+2;0))
))
Fa sapere se hai risolto.
--
Ciao
Ignazio
"Ignazio" ha scritto:
> e se invece la scadenza della fattura dovrebbe essere a 60 fine mese?
>
> > e se invece la scadenza della fattura dovrebbe essere a 60 fine mese?
Potresti spiegare meglio (magari con alcuni esempi) cosa intendi per
scadenza a 60 gg fine mese?
--
Ciao
Ignazio
"Ignazio" ha scritto:
> data fattura 15-10-2005
scadenza fattura 31-12-2005
>
Prova con questa:
=DATA(ANNO(C5);MESE(C5)+3;0)
sostituisci eventualmente il 3 col
numero di mesi aumentato di 1
Un personale saluto ad Ignazio.
()---cucchiaino
Io uso questa funzione che presume un codice per la modalità di
pagamento come sotto riportata.
(La routine è stata copiata da un vecchio programma di contabilità e
non è mai stata ottimizzata. Lascio a chi ha un po' di tempo
l'onere-onore di farlo.
Grazie
Bruno
---------------------------------------
Public Function FDataScadenza(CodModPag$, DataFattura$) As String
Dim DF$, MOP$, SCAD$, SCADS$, DLAG
'si entra con: CodModPag$ vedi codifica
'
' DataFattura$ formattata come 'ggmmaa'
'rende: FDataScadenza formattata come 'gg/mm/aa'
Select Case Len(DataFattura$)
Case 6, 7
GoTo Label_len6
Case 10
GoTo Label_len10
Case Else
MsgBox "Lunghezza data non valida. " + DataFattura$ + " . Deve
essere ggmmaa oppure gg/mm/aaaa ", 64, "Casella delle attività"
Exit Function
End Select
Label_len10:
DF$ = Mid$(DataFattura$, 1, 2) + "" + Mid$(DataFattura$, 4, 2) + ""
+ Mid$(DataFattura$, 9)
GoTo Label_exit
Label_len6:
DF$ = Mid$(DataFattura$, 1, 2) + "" + Mid$(DataFattura$, 3, 2) + ""
+ Mid$(DataFattura$, 5)
Label_exit:
MOP$ = CodModPag$
3250 'DATSCAD
3260 If MOP$ = "+++" Then SCAD$ = "": SCADS$ = "": GoTo Label_S1
3270 If MOP$ = "000" Then SCAD$ = " GIA' PAGATO": SCADS$ = " GIA'
PAGATO": GoTo Label_S1
3271 If MOP$ = "50/" Then SCAD$ = " RICEVIMENTO FATT. F.M.": SCADS$ = "
RICEVIMENTO FATT. F.M.": GoTo Label_S1
3280 If Mid$(MOP$, 2, 1) = "0" Then SCAD$ = " AL RICEVIMENTO": SCADS$ =
" AL RICEVIMENTO": GoTo Label_S1
3290 'IF MID$(MOP$,3,1)="*" THEN SCAD$=" A VISTA":SCADS$=" A
VISTA":RETURN
3300 DLAG = 0: If Mid$(MOP$, 3, 1) = "/" Or Mid$(MOP$, 3, 1) = "#" Then
DLAG = 1
3310 D0$ = DF$: DG = Val(Mid$(MOP$, 2, 1)) / 3: If DG = 2 / 3 Then DG =
4
'3320 DF = Val(Mid$(D0$, 1, 2)) + Val(Mid$(D0$, 4, 2)) / 100 +
(Val(Mid$(D0$, 7, 4))) / 1000000!
3320 DF = Val(Mid$(D0$, 1, 2)) + Val(Mid$(D0$, 3, 2)) / 100 + (2000 +
Val(Mid$(D0$, 5, 2))) / 1000000!
3330 DT# = DF: GoSub 3440: GF = G#: MF = M#: AF = A#: GS = GF: MS = MF
+ DG: ASS = AF:
If MS > 12 Then ASS = AF + Fix(MS / 12): MS = MS - 12 * (ASS - AF)
3340 G# = GS: M# = MS: A# = ASS: GoSub 3460:
3342 'IF SS = 0 AND DLAG = 0 THEN 3370
3344 GS = 1: MS = MS + 1
3345 If Mid$(MOP$, 3, 1) = "#" Then GS = GS + 10
3347 If Mid$(MOP$, 3, 1) = "/" And (MS = 9 Or MS = 13) Then GS = GS +
10
3350 If MS > 12 Then ASS = ASS + 1: MS = 1
3360 G# = GS: M# = MS: A# = ASS: GoSub 3460: DIS# = DI# + 478164! - 1:
GoSub 3530
3370 GG$ = Str$(GS): MM$ = Str$(MS): AA$ = Str$(ASS) 'c'era A$ =
STR$(ASS - 1900)
3375 GG$ = Mid$(GG$, 2, Len(GG$) - 1): MM$ = Mid$(MM$, 2, Len(MM$) -
1): AA$ = Mid$(AA$, 2, Len(AA$) - 1)
3380 If Len(GG$) < 2 Then GG$ = "0" + GG$
3390 If Len(MM$) < 2 Then MM$ = "0" + MM$
3400 If Len(AA$) < 2 Then AA$ = "0" + AA$
3410 SCAD$ = GG$ + MM$ + AA$
3420 SCADS$ = Mid$(SCAD$, 1, 2) + "/" + Mid$(SCAD$, 3, 2) + "/" +
Mid$(SCAD$, 5)
Label_S1:
FDataScadenza = SCADS$
'''MsgBox "DATA FATT.: " + DataFattura$ + " - SCADENZA: " + SCAD$ +
" - " + SCADS$, vbInformation, "Controllo" 'per testare
3426 Exit Function
'
3440: G# = Val(Mid$(D0$, 1, 2)): M# = Val(Mid$(D0$, 3, 2)):
3442 A# = Val("20" + Mid$(D0$, 5, 2)): 'originale
3443 A99# = Val(Mid$(D0$, 5, 2))
3444 If A99# < 50 Then A# = Val("20" + Mid$(D0$, 5, 2))
3448 s# = A# + M# / 100 + G# / 10000: '20031025 anno+mese+giorno
Return
'entro con 25 - 2 - 2005 gg mm aaaa della data di scadenza
3460: SS = 0: If M# <= 2 Then M# = M# + 12: A# = A# - 1
3470 M# = M# + 1: DI# = Int(365.25 * A#) - Int(A# / 100) + Int(A# /
400) + Int(30.6001 * M#) + G# - 478164!
3480 If MS = 2 And (ASS Mod 4) = 0 And GS > 29 Then SS = 1
3490 If MS = 2 And ASS Mod 4 <> 0 And GS > 28 Then SS = 1
3500 If (MS = 4 Or MS = 6 Or MS = 9 Or MS = 11) And GS > 30 Then SS = 1
3510 Return
'
3530: ASS = Int((DIS# - 121.5) / 365.2425)
3540 MS = Int((DIS# - Int(ASS * 365.25) + Int(ASS / 100) - Int(ASS /
400)) / 30.6001)
3550 GS = DIS# - Int(ASS * 365.25) + Int(ASS / 100) - Int(ASS / 400) -
Int(30.6001 * MS)
3560 If MS / 3 <= 1 Then ASS = ASS - 1: GoTo 3540
3570 If MS >= 14 Then ASS = ASS + 1: MS = MS - 12
3580 MS = MS - 1:
Return
End Function
CodModPag$ = Range("Servizi!$I$3")
in "Servizi!$I$3" c'è la formula:
=CERCA.VERT(Bolla!$B$19;CLIENTI!$A$2:$R$600;7;FALSO)
che rende il codice-pagamento del cliente (codificato come nella
tabella sotto)
in funzione del codice-cliente (CLIENTI!$A$2:$R$600 è l'elenco dei
dati dei clienti)
CodiceTipodiPagamento
--- NON CODIFICATO
+++
000 Gia' Pagato
10* Rimessa Diretta Ricevimento Fattura
10/ Rimessa Diretta Fine Mese
12/ Rimessa Diretta 120 GG D.F. Fine Mese
13/ Rimessa Diretta 30 GG D.F. Fine Mese
16/ Rimessa Diretta 60 GG D.F. Fine Mese
19/ Rimessa Diretta 90 GG D.F. Fine Mese
22/ Ricevuta Bancaria 120 GG D.F. Fine Mese
23# Ricevuta Bancaria 30 GG D.F. Fine Mese+ 10 GG
23/ Ricevuta Bancaria 30 GG D.F. Fine Mese
26/ Ricevuta Bancaria 60 GG D.F. Fine Mese
29/ Ricevuta Bancaria 90 GG D.F. Fine Mese
50* Bonifico Bancario Ricev. Fattura
50/ Bonifico Bancario Ricevim. Fattura Fine Mese
500 Bonifico Bancario
53/ Bonifico Bancario 30 GG D.F. Fine Mese
56/ Bonifico Bancario 60 GG D.F. Fine Mese
59# Bonifico Bancario 90 GG D.F. Fine Mese+ 10 GG
59/ Bonifico Bancario 90 GG D.F. Fine Mese
600 Contrassegno