Nella cella A2 digito l'anno nella cella B2 =datadiPasqua(A2) quando cancello l'anno cella A2 nella cella B2 esce l'errore #VALORE
come fare? Grazie
Moderatori: Anthony47, Flash30005
Function IndiceDove(Dato, Vettore) As Integer
Dim i As Integer
For i = UBound(Vettore) To 0 Step -1
If Dato >= Vettore(i) Then Exit For
Next
IndiceDove = i
End Function
Function DataDiPasqua(Anno As Integer) As Date
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
Dim Anni, M, Q, ind As Integer
Anni = Array(1583, 1700, 1800, 1900, 2100, 2200, 2300, 2400)
M = Array(22, 23, 23, 24, 24, 25, 26, 25)
Q = Array(2, 3, 4, 5, 6, 0, 1, 1)
ind = IndiceDove(Anno, Anni)
a = Anno Mod 19
b = Anno Mod 4
c = Anno Mod 7
d = (19 * a + M(ind)) Mod 30
e = (2 * b + 4 * c + 6 * d + Q(ind)) Mod 7
Dim didimar As Integer, MesePasq As Integer, GiorPasq As Integer
didimar = 22 + d + e
If didimar > 31 Then
MesePasq = 4
GiorPasq = didimar - 31
Else
MesePasq = 3
GiorPasq = didimar
End If
DataDiPasqua = DateSerial(Anno, MesePasq, GiorPasq)
End Function
Public Function Pasqua(ByVal anno As Integer) As Date
Dim a%, b%, c%, p%, q%, r%
a = anno% Mod 19: b = anno% \ 100: c = anno% Mod 100
p = (19 * a + b - (b \ 4) - ((b - ((b + 8) \ 25) + 1) \ 3) + 15) Mod 30
q = (32 + 2 * ((b Mod 4) + (c \ 4)) - p - (c Mod 4)) Mod 7
r = (p + q - 7 * ((a + 11 * p + 22 * q) \ 451) + 114)
Pasqua = DateSerial(anno%, r \ 31, (r Mod 31) + 1)
End Function
Function DataDiPasqua(Anno As Integer) As Variant 'MMM Riga Modificata
If Anno < 1900 Then DataDiPasqua = "": Exit Function '+++ Riga AGGIUNTA
'seguono le altre istruzioni:
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
(se usate i tag per incapsulare il codice allora non rischiate di vedere le faccine)
=ARROTONDA.DIFETTO(GIORNO(MINUTO(A1/38)/2+56)&" / 5 / "&A1;7)-34
=VALUTA(("4/"&A1)/7+RESTO(19*RESTO(A1;19)-7;30)*14%;)*7-6
=ARROTONDA.DIFETTO(DATA(A1;3;RESTO(18,37*RESTO(A1;19)-6;29));7)+29
=ARROTONDA.DIFETTO(DATA(A1;5;GIORNO(MINUTO(A1/38)/2+56));7)-34
=TESTO.UNISCI("";A1;CODICE.CARATT(STRINGA.ESTRAI("06"&"6117111110032080114105109111032065112114105108101";1+(RIF.RIGA(INDIRETTO("1:"&(LUNGHEZZA(A1)^2+1)))-1)*3;3*(LUNGHEZZA(A1)=4))))
Function PasquAll(ByVal myY As Integer) As Variant
Dim PMF As String
PMF = "066117111110032080114105109111032065112114105108101"
For I = 1 To Len("" & myY) * 4 + 1
myStr = myStr & Chr(Mid(PMF, (I - 1) * 3 / Day(DateSerial(myY, I / 4, 1)) + Log(CLng(Mid(PMF, 11, 2))) / Log(10), Len("" & myY) - 1))
Next I
If Len(myStr) > 9 Then PasquAll = myStr Else PasquAll = CVErr(2015)
End Function
=PasquAll(A1)
Torna a Applicazioni Office Windows
Errore durante la riduzione a icona delle finestre durante l Autore: johnhartman |
Forum: Software Windows Risposte: 1 |
Errore 1004 su macro salva file come mht - mhtml Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 4 |
Visitano il forum: Nessuno e 8 ospiti