Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DATA.DIFF causa problemi

1,456 views
Skip to first unread message

Santo

unread,
Jan 26, 2012, 6:04:19 AM1/26/12
to
Ciao,
in A1 ho una data.
Per calcolare il tempo trascorso in anni, mesi e giorni ad oggi da quella data uso in forma matriciale:

=DATA.DIFF(A1;OGGI();{“y”;”ym”;”md”})

ed ottengo il risultato atteso in tre celle separate.

Però, se il giorno della data in A1 (spero di spiegarmi bene) è superiore al giorno di =oggi() la formula non funziona.

Esempio: In A1 03/10/1980, oggi è il 26/01/2012 il risultato è correttamente 31 (anni) 3 (mesi) 23 (giorni)

In A1 26/10/1980 il risultato è correttamente 32 (anni) 0 (mesi) 0 (giorni)

In A1 27/10/1980 [quindi 27 è maggiore del 26 di =oggi()] ottengo 31 (anni) 2 (mesi) 143 (giorni)

Perché? Come risolvere?

Grazie

Andrea.9

unread,
Jan 26, 2012, 6:43:17 AM1/26/12
to
ho provato ma a me funzionano correttamente:
=DATA.DIFF(A1;OGGI();{"y"})
=DATA.DIFF(A1;OGGI();{"ym"})
=DATA.DIFF(A1;OGGI();{"md"})
per me hai qualche problema nei formati delle celle
ti segnalo anche questa
=DATA.DIFF(A1;OGGI();"y")&" anni, "&DATA.DIFF(A1;OGGI();"ym")&" mesi,
"&DATA.DIFF(A1;OGGI();"md")&" giorni"
ciao
andrea

Santo

unread,
Jan 26, 2012, 7:26:01 AM1/26/12
to
Il giorno giovedì 26 gennaio 2012 12:43:17 UTC+1, Andrea.9 ha scritto:
> ho provato ma a me funzionano correttamente:
> =DATA.DIFF(A1;OGGI();{"y"})
> =DATA.DIFF(A1;OGGI();{"ym"})
> =DATA.DIFF(A1;OGGI();{"md"})

Inserisci le formule singolarmente,non simultaneamente in tre celle contigue, quindi non serve racchiudere i parametri tra parentesi graffe

> per me hai qualche problema nei formati delle celle

Nessun problema

> ti segnalo anche questa
> =DATA.DIFF(A1;OGGI();"y")&" anni, "&DATA.DIFF(A1;OGGI();"ym")&" mesi,
> "&DATA.DIFF(A1;OGGI();"md")&" giorni"

Nnn mi serve la formula testuale che in ogni caso mi darebbe, anche non provando, gli stessi problemi
> ciao
> andrea

Ti ringrazio in ogni caso del tuo interessamento.
Uso excel 2007

paoloard

unread,
Jan 26, 2012, 8:14:04 AM1/26/12
to
"Santo" ha scritto nel messaggio
news:12402419.2296.1327575859540.JavaMail.geo-discussion-forums@vbwl1...
------------------------

Usa la formula in tre celle separate:
=DATA.DIFF(A1;OGGI();"y")
=DATA.DIFF(A1;OGGI();"ym")
=DATA.DIFF(A1;OGGI();"md")

-- fai sapere
ciao paoloard
http://www.riolab.org

Scossa

unread,
Jan 26, 2012, 3:07:56 PM1/26/12
to
On 26 Gen, 12:04, Santo <antileghi...@gmail.com> wrote:
>
> Esempio: In A1 03/10/1980, oggi è il 26/01/2012 il risultato è correttamente 31 (anni) 3 (mesi) 23 (giorni)
giusto

> In A1 26/10/1980 il risultato è correttamente 32 (anni) 0 (mesi) 0 (giorni)

e perché 32 anni??


> In A1 27/10/1980 [quindi 27 è maggiore del 26 di =oggi()] ottengo 31 (anni) 2 (mesi) 143

Io ottengo questi valori (Excel 2003):
03/10/1980 31 3 23
26/10/1980 31 3 0
27/10/1980 31 2 30
e mi sembrano corretti;

con Excel 2007 invece:
03/10/1980 31 3 23
26/10/1980 31 3 0
27/10/1980 31 2 143
ed in effetti l'ultimo è palesement esbagliato


eliano

unread,
Jan 26, 2012, 3:32:36 PM1/26/12
to
On 26 Gen, 13:26, Santo <antileghi...@gmail.com> wrote:

> Nnn mi serve la formula testuale che in ogni caso mi darebbe, anche non provando, gli stessi problemi

Bravo, 7+ (anche non provando)

Io invece ho provato:

A B
27/10/1980 31 anni - 2 mesi - 30 giorni

in B1 =DATA.DIFF(A1;OGGI();"y") & " anni - " &
DATA.DIFF(A1;OGGI();"ym") & " mesi - " & DATA.DIFF(A1;OGGI();"md") &
" giorni"

Eliano

eliano

unread,
Jan 26, 2012, 3:34:53 PM1/26/12
to
Che sia una questione di Hamperaggio ?? :-))
Ciao
Eliano

Scossa

unread,
Jan 26, 2012, 3:41:31 PM1/26/12
to

Ciao Eliano,

> Che sia una questione di Hamperaggio ?? :-))

Nhaaaa, secondo me è colpa dei Maya


Bye!
scossa

eliano

unread,
Jan 26, 2012, 4:26:02 PM1/26/12
to
Ah, Beh, Hallora....:-))

Santo

unread,
Jan 26, 2012, 4:50:55 PM1/26/12
to

Il problema esiste. Anche Scossa lo afferma.

Maya e (H)Amperaggio [voto 4] non ci salvano.

Io non ho una spiegazione altrimenti non avrei aperto questo thread.

Devo portare il mio PC dal "meccanico" o il mio cervello? O entrambi?

La soluzione proposta dall'amico Paolo purtroppo non cambia la situazione.

eliano

unread,
Jan 26, 2012, 6:08:44 PM1/26/12
to
Visto il voto che mi hai hdato, hcredo che hdovro' handare a
hripetizione.:-D)
Ci risentiamo al termine delle lezioni.:-))
Comunque credo che una soluzione sia nell'esempio che tu hai fatto,
Saluti
Eliano

Santo

unread,
Jan 27, 2012, 5:14:34 AM1/27/12
to
Heliano scrive diverse cose

>Bravo, 7+ (anche non provando)
>Io invece ho provato:
>A B
>27/10/1980 31 anni - 2 mesi - 30 giorni
>in B1 =DATA.DIFF(A1;OGGI();"y") & " anni - " &
>DATA.DIFF(A1;OGGI();"ym") & " mesi - " & DATA.DIFF(A1;OGGI();"md") & "giorni"


Non in excel 2007
Non mi serve anche se funzionasse (repetita juvant)


>Che sia una questione di Hamperaggio ?? :-))


Strafalcione linguistico aggravato da simboli da teenager



>Ah, Beh, Hallora....:-))
>Visto il voto che mi hai hdato, hcredo che hdovro' handare a hripetizione.:-D)


Goffo tentativo di coprire lo strafalcione, si noti la persistenza della sindrome di Peter Pan


>Ci risentiamo al termine delle lezioni.:-))


La libertà è la cosa più bella della vita, per me ci possiamo sentire quando vuoi, anche in privato, perché per Santo il siciliano non rappresenti un problema ma una persona interessante.


>Comunque credo che una soluzione sia nell'esempio che tu hai fatto(*meccanico)


Il lettino di Freud adesso è pronto.


Sorrido, sorrido serenamente. In effetti se ci pensate bene … la vera cosa che distingue l’uomo dall’animale … non è l’intelligenza (anche la formica o una serpe hanno una “quid” di intelligenza rispetto all’uomo) ma, in effetti è la capacità di sorridere. Non mi citate il caso della jena ridens.


Vado oltre e torno a Excel.
C’è una considerazione doverosa da fare, riscontrata palesemente anche da Scossa, la differenza di comportamento tra excel 2003 e excel 2007. In excel 2010 come và?


Se fosse un bug, quale alternativa per ottenere il risultato voluto, considerando la possibilità degli anni bisestili (naturalmente per i giorni) in una delle due date (permutate) o addirittura in entrambe?


Conosco la regola dell’anno bisestile) ma in nuova soluzione e magari eventualmente troppo difficile per me, non saprei forse come applicarla.


Naturalmente mi attendo anche una assoluta mancanza di risposte al quesito tecnico. Siccome non amo la faccine (mai usate … per principio,liberi naturalmente gli altri di usarle) comunico che sto sorridendo.


Allego comunque un file a favore di chi è interessato al problema e non al mio problema.

http://wikisend.com/download/446796/Heliano.xlsx

Ciao

eliano

unread,
Jan 27, 2012, 5:31:49 AM1/27/12
to
Bravo, continua a sorridere; per quello la capacita' di sintesi non
serve.:-))
Per quanto riguarda gli strafalcioni (sic), forse non hai notato che
sia Scossa che Andrea hanno risposto a tono. Siamo un branco di
individui incapaci, che ci vuoi fare, Santo; non tutti possono essere
come te, fortunatamente.
Eliano

Santo

unread,
Jan 27, 2012, 6:13:29 AM1/27/12
to
Vedo che il tuo disordine mentale persiste e che ne sai poco del sorriso. Sono uno che si preoccupa laicamente del prossimo ed ho sempre rispettato l’ignoranza.

Proclamo innocente Andrea. Il suo intervento è stato gentile.

Proclamo innocente Scossa: la battuta dei Maya era frutto di chiaro spontaneismo.

Proclamo innocente Paolo. Non c’è bisogno di commenti.

Proclamo innocente Santo. Ha formulato una domanda tecnica su un forum tecnico.

Proclamo innocente Heliano. Vittima di se stesso.


Certo che guaio se facessi il mestiere di giudice!!!


Invito ancora gentilmente Andrea, Scossa, Paolo, Eliano senza H e tutti quanti ne sanno più di me di Excel ad intervenire sul problema tecnico da me sollevato. Nessuna voglia di parlare del sesso degli angeli.

Ciao

eliano

unread,
Jan 27, 2012, 6:31:15 AM1/27/12
to
Caro Santo,
lasciamo stare il sesso di chicchessia :-)); ti informo che fin dal
lontano 2004 l'eventuale problema è stato risolto senza l'uso di
DATA.DIFF (formula non documentata da Zio Bill e quindi potenzialmente
inaffidabile), con una formula di lunghezza media (< di 300 caratteri)
prodotta, se ricordo bene, da Barbara.
Visto che sono impegnato con il lettino di Mr. Freud, sii così cortese
da cercartela in archivio; nel caso che tu non sia capace di trovarla,
cosa abbastanza probabile, al termine delle sedute vedrò di trovarla
nei miei file e te la forniro' su un piatto di legno (argento no,
visto il periodo di crisi):-))
Eliano

Santo

unread,
Jan 27, 2012, 8:05:47 AM1/27/12
to

Meglio infatti se la cerchi nei tuoi file. Grazie Eliano per la disponibilità.

Però vorrei che non si ignorasse il problema di DATA.DIFF e invito i tuoi"funzionari" (mi fai morire dal ridere) a farsi sentire oltre ai già citati.


Ciaoooo. Aspetto eh!

eliano

unread,
Jan 27, 2012, 8:31:27 AM1/27/12
to
"I miei funzionari ??"
Cosa significa ?? Ho la vaga impressione che tu abbia qualche
problema.:-))
A meno che tu non sia in grado di dare una spiegazione plausibile, ti
invito nuovamente a cercare in Archivio. Chi cerca trova, se cerca-:-
D))
Eliano

Santo

unread,
Jan 27, 2012, 10:00:17 AM1/27/12
to
Non riconosci per esempio come tue queste frasi?

>Vedo che vuoi una soluzione con formula; per quella bisogna aspettare che i "funzionari" >>abbiano smaltito i postumi loro.:-)) …

>A parte il fatto che la richiesta ai "funzionari" è sempre valida, questa è una formula "derivata":

Altre ne esistono

Ho cercato subito quello che hai suggerito ma non ho trovato.
Vedo comunque il thread spegnersi (come avevo previsto).... eppure chi fa una domanda merita sempre, comunque e a prescindere una risposta o anche solo un insulto.

Insisto: la criticità di DATA.DIFF è sotto gli occhi di tutti.

Santo

unread,
Jan 27, 2012, 10:58:20 AM1/27/12
to

Novità esistenziali o risposte tecniche?

eliano

unread,
Jan 27, 2012, 11:16:33 AM1/27/12
to
Ti avevo già dato un indizio relativo ed attinente agli esempi da te
forniti, ma vedo che sei addirittura incapace di fare una semplice
ricerca, mentre ti atteggi a persona "interessante", che da voti a
sproposito, che addirittura si atteggia a giudice proclamando
l'innocenza di chi non necessita di tale riconoscimento da parte di
nessuno.
Ripeto cerca nell'archivio e troverai quanto ti necessita; tra l'altro
questa e' la cosa piu' naturale che persone "normali" fanno prima di
chiedere.
Ripeto inoltre che, non appena terminate le sedute sul lettino di Mr.
Freud, provvedero' a segnalare illink relativo; non per te,
ovviamente, ma per tutti q

eliano

unread,
Jan 27, 2012, 11:21:12 AM1/27/12
to
partito un colpo.

Dicevo: non per te, ma per tutti quelli che, meno presuntuosi di te,
ne potrebbero avere necessita'.
Tanto ti dovevo :-))
Eliano

Santo

unread,
Jan 27, 2012, 12:30:07 PM1/27/12
to
Noto una certa discontinuità rispetto al tuo ultimo post pseudo-sensato.

La tua coscienza di protezione da parte del "cerchio magico" di questo gruppo ti fà stare ancora più male.

Sia il cerchio magico, sia gi adepdti o i soggiogati certo non stanno facendo bella figura.

Per i tuoi disurbi momentanei ti consiglio Lexotan da 3 mg tre volte al giorno.

Reitero la semplice domanda:

Perchè DATA.DIFF in excel 2007 fallisce in certe condizioni? Si tratta di un bug?

Scossa asserisce che in excel 2003 funziona e conferma che in excel 2007 non funziona. Scossa non è l'ultimo arrivato così come glialtri che all'inizio hanno cercato di dare indicazioni o spiegazioni. Succede anche in Excel 2010?
Se si tratta di un bug, qualcuno conosce un'alternativa?

C'è bisogno di riunire il Политическое Бюро?


Ciao

paoloard

unread,
Jan 27, 2012, 12:45:34 PM1/27/12
to
"Santo" ha scritto nel messaggio
news:30925118.4171.1327659274149.JavaMail.geo-discussion-forums@vbtr6...

cut
Allego comunque un file a favore di chi è interessato al problema e non al
mio problema.

http://wikisend.com/download/446796/Heliano.xlsx

Ciao

-------------------------------------

Come puoi vedere:
https://skydrive.live.com/?wa=wsignin1.0&sa=82778661#cid=119877C26B75DCC7&id=119877C26B75DCC7%21460
nella versione 2010 il tuo file non presenta problemi.

ciao paoloard
http://www.riolab.org

Scossa

unread,
Jan 27, 2012, 1:42:45 PM1/27/12
to
On 27 Gen, 18:30, Santo <antileghi...@gmail.com> wrote:
> Scossa asserisce che in excel 2003 funziona e conferma che in excel 2007 non funziona. Scossa non è l'ultimo arrivato così come glialtri che all'inizio hanno cercato di dare indicazioni o spiegazioni. Succede  anche in Excel 2010?

> Se si tratta di un bug, qualcuno conosce un'alternativa?
>

Chiamalo bug o chiamalo in un altro modo, il risultato è sempre
quello: un valore errato, le alternative, oltre quella suggerita di
cercare in rete la formula, è quella di ricorrere ad una UDF in VBA,
se ritieni che sia accettabile possso buttarne giù una, eventualmente
poi puoi provare a tradurla in una formula.

Bye!
scossa

eliano

unread,
Jan 27, 2012, 1:51:53 PM1/27/12
to
Ciao elettrico,ma forse non serve una UDF.
Se ho capito bene, in XL2007 c'e' un problema con DATA.DIFF.
Che ne pensi: giorno che funge +1 ??
Sarebbe il primo consiglio, ma non ho il 2007 per provarlo.
Eliano

eliano

unread,
Jan 27, 2012, 1:45:38 PM1/27/12
to
On 27 Gen, 18:30, Santo <antileghi...@gmail.com> wrote:
LOL
Tralasciando le cazzate, esistono piu' di una alternativa; basta
cercare nell'Archivio, ma forse per te questo rappresenta uno sforzo
eccessivo per le tue sinapsi.
Inoltre non ti e' ben chiara una cosa: questo e' un ambiente libero,
dove nessuno dipende da qualcuno; ma forse anche questo e' un concetto
per un boss come te poco comprensibile.
Quindi o cerchi quello che ti necessita o aspetti. A proposito: un
thread molto utile e' datato 03/06/2004.:-))
Eliano

eliano

unread,
Jan 27, 2012, 1:54:54 PM1/27/12
to
Urca Elettrico, non avevo letto tutto il post.
Perfetto per l' UDF, cosi' l'OP la traduce in una formula.:-D)
doppio :-D))
Eliano

Santo

unread,
Jan 27, 2012, 1:55:16 PM1/27/12
to

Scossa, giustamente non si sbilancia. Chiamiamolo dunque errore (in 2007.
In 2003 il problema non sussiste.In 2010 Paolo che non ci asono problemi.
Va bene anche la function che mi consideri anche le eccezioni dell'annno bisestile.

Scossa, cortesemente puoi postarla magari con i commenti (per capire meglio)?

Ciao

Scossa

unread,
Jan 27, 2012, 2:12:12 PM1/27/12
to
On 27 Gen, 19:51, eliano <falinieli...@virgilio.it> wrote:
>
> Ciao elettrico,ma forse non serve una UDF.
> Se ho capito bene, in XL2007 c'e' un problema con DATA.DIFF.
> Che ne pensi: giorno che funge +1 ??
> Sarebbe il primo consiglio, ma non ho il 2007 per provarlo.

Mah,
dal 27/10/1980 al 26/10/2012
Excel 2007 restituisce 31 (anni), 2 (mesi), 143 (giorni)
Direi che c'è chiaramente un problema nel codice di Data.Diff().
Come risolverla con un unica formule matriciale non saprei (le formule
non sono il mo forte), se non provando a tradurre il codice VBA di una
UDF che restituisca in forma di matrice il valore corretto.

Bye!
scossa


Scossa

unread,
Jan 27, 2012, 2:49:48 PM1/27/12
to
Non ho capito cosa intendi con "consideri anche le eccezioni
dell'annno bisestile" la mia UDF con tra il 28/02/2012 e 01/03/2012
dice che ci sono 0 anni 0 mesi e 2 giorni, mentre tra il 28/02/2011 e
01/03/201 dice che ci sono 0 anni 0 mesi e 1 giorno, quindi direi che
gestisce i bisestili.

la mia artigianale e scritta al volo, vuole due argomenti: la data
iniziale (vecchia) e la data finale (recente) e resituisce una matrice
di tre valori: anni mesi e giorni di differenza tra le due date.
Alcuni esempi di uso (in A9.. data iniziale, in B9.. data finale):
in C9:D9...::
= diffdata(A9;B9)
E' anche possibile prendere un solo valore, ad esempio per i soli
giorni:
=INDICE(diffdata(A3;OGGI()-1);3)
per i mesi:
=INDICE(diffdata(A3;OGGI()-1);2)
per gli anni:
=INDICE(diffdata(A3;OGGI()-1);1)

Questi alcuni risultati:
03/10/1980 26/01/2012 31 3 23
26/10/1980 26/01/2012 31 3 0
27/10/1980 26/01/2012 30 8 30
27/10/1980 27/10/2012 32 0 0
27/10/1980 26/10/2012 31 11 29
28/02/2011 01/03/2011 0 0 1
28/02/2012 01/03/2012 0 0 2

A te testarla con date "bizzarre".

Questo il codice (mi sembra abbastanza chiaro: uso due matrici in cui
memorizzo anno mese giorno delle due date, una terza matrice per il
risultato) ripeto che non l'ho testata e quindi non garantisco la
correttezza dei risultati:

Public Function DiffData(ByVal dDataOld As Date, ByVal dDataNew As
Date) As Variant
Dim aDataOld(1 To 3) As Variant
Dim aDataNew(1 To 3) As Variant
Dim aData(1 To 3) As Variant

Application.Volatile

aDataOld(1) = VBA.DatePart("yyyy", dDataOld)
aDataOld(2) = VBA.DatePart("m", dDataOld)
aDataOld(3) = VBA.DatePart("d", dDataOld)

aDataNew(1) = VBA.DatePart("yyyy", dDataNew)
aDataNew(2) = VBA.DatePart("m", dDataNew)
aDataNew(3) = VBA.DatePart("d", dDataNew)

If aDataNew(2) >= aDataOld(2) Then
aData(2) = aDataNew(2) - aDataOld(2)
aData(1) = aDataNew(1) - aDataOld(1)
Else
aData(2) = 12 + aDataNew(2) - aDataOld(2)
aData(1) = aDataNew(1) - aDataOld(1) - 1
End If


If aDataNew(3) >= aDataOld(3) Then
aData(3) = aDataNew(3) - aDataOld(3)
Else
aData(3) = Day(DateSerial(Year(dDataNew), Month(dDataNew), 0)) +
aDataNew(3) - aDataOld(3)
If aDataNew(1) > aDataOld(1) Then aData(1) = aData(1) - 1
If aDataNew(2) > aDataOld(2) Then
aData(2) = aData(2) - 1
Else
aData(2) = 11 - aData(2)
End If
End If

DiffData = aData

End Function


Bye!
scossa

eliano

unread,
Jan 27, 2012, 3:05:21 PM1/27/12
to
On 27 Gen, 18:30, Santo <antileghi...@gmail.com> wrote:
Scusa Santo, ma non avevo letto questo post, visto le cazzate che stai
scrivendo in continuazione.
Rimedio subito, rispondendo punto per punto.

Innanzi tutto un LOL pronunciato ed irrefrenabile, che tu,che sorridi
sempre, penso che sarai in grado di capire.

Per quanto mi riguarda sto benissimo; mi dispiace per te.:-))

Cerchio Magico - Adepti - Soggiogati

Siamo a livello della pura follia; comunque invito tutti quelli che
fanno parte del Cerchio Magico, o che hanno la qualifica di Adepti o
di Soggiogati a dichiarare all'inizio di un qualsiasi intervento la
loro appartenenza ad una di queste classi o organizzazioni.

Stesso discorso per quanto riguarda il "Политическое Бюро" (ndr.
Ufficio Politico) che non so cosa possa essere; per quanto mi riguarda
ho controllato in agenda e non ho nemmeno una riunione di
condominio. :-))

Non ho medicinali da proporti anche in considerazione del fatto che
sarebbero necessarie dosi massicce per ottenere un risultato
accettabile, dosi che potrebbero farti bene (o male) alla salute.

Eliano

eliano

unread,
Jan 27, 2012, 3:13:29 PM1/27/12
to
Elettrico, scusa ma non vedo dichiarazioni.
Ma tu sei un Adepto o un Soggiogato??
Grazie
Eliano

eliano

unread,
Jan 27, 2012, 3:10:33 PM1/27/12
to
On 27 Gen, 20:49, Scossa <scossa...@gmail.com> wrote:
Funziona anche con la luna piena ??
Non e' una illazione, ma visto che l'OP si preoccupa dei
bisestili.....
Eliano

eliano

unread,
Jan 27, 2012, 3:22:05 PM1/27/12
to
Forse non sono stato chiaro.
Domanda: dal 26/10/1980 al 26/10/2012 = X giorni funziona?
Se ok, allora dal 27/10/1980 al 26/10/2012 = x giorni +1
Lo testi e lo confermi, Grazie ??
Era solo un'idea, l'unica soluzione e' una formula o una UDF.
Ciao
Eliano

Santo

unread,
Jan 27, 2012, 3:31:08 PM1/27/12
to

Scusami Scossa ma così credo che consideriamo la differenza fra due date e non il tempo trascorso.

Correggimi se sbaglio.

Ciao

eliano

unread,
Jan 27, 2012, 4:01:19 PM1/27/12
to
> Eliano- Nascondi testo citato
>
> - Mostra testo citato -

ooopss
Voleva essere:
Se ok, allora dal 26/10/1980 al 27/10/2012 = x giorni +1
Sorry
Eliano

Scossa

unread,
Jan 27, 2012, 4:07:18 PM1/27/12
to
On 27 Gen, 21:22, eliano <falinieli...@virgilio.it> wrote:
> On 27 Gen, 20:12, Scossa <scossa...@gmail.com> wrote:
> Forse non sono stato chiaro.
> Domanda: dal 26/10/1980 al 26/10/2012 = X giorni funziona?
> Se ok, allora dal 27/10/1980 al 26/10/2012 = x giorni +1
Semmai 27/10/1980 al 26/10/2012 = x giorni - 1

ma significa passare ad esempio da 32 anni 0 mesi 0 giorni a 31 anni
11 mesi 29 giorni

In formula??

Scossa

unread,
Jan 27, 2012, 4:09:14 PM1/27/12
to
Perche, la funzione Data.Diff() di cui stiamo discutendo, e che ha
problemi in Excel 2007 cosa fa?

eliano

unread,
Jan 27, 2012, 4:31:43 PM1/27/12
to
Google ha ripreso a farsi gli affaretti suoi :-((

eliano

unread,
Jan 27, 2012, 4:17:41 PM1/27/12
to
LOL
Vuoi vedere che calcola la differenza fra due date??
Eliano

Scossa

unread,
Jan 27, 2012, 4:47:38 PM1/27/12
to
On 27 Gen, 21:10, eliano <falinieli...@virgilio.it> wrote:
> Funziona anche con la luna piena ??
> Non e' una illazione, ma visto che l'OP si preoccupa dei
> bisestili.....

Non saprei, però ho appurato che funziona durante un terremoto :-)
anzi :-(

Bye!
scossa

eliano

unread,
Jan 27, 2012, 4:58:55 PM1/27/12
to
LOL
Con l'eta' devo essere diventato un po' sordo.
Oggi,per ben due volte non l'ho proprio sentito.:-))
Ed a giudicare dalle espressioni dei presenti e dal movimento dei
lampadari, deve essere stato abbastanza forte.
Ottimo per te e la tua UDF che siete stati "collaudati" a fondo.:-D)
Eliano

Santo

unread,
Jan 28, 2012, 7:10:12 AM1/28/12
to
Scusate il ritardo. “vivi la vita come una battaglia e la morte come un’avventura” diceva quello.

Non mi sottraggo a un bel niente. Ad un certo orario ho semplicemente ritenuto opportuno spegnere il PC .

Sentivo il bisogno di abbandonarmi ai “piaceri del ventre” in senso Epicureo.

Gli interventi di Scossa, anche se frettolosi, sono stati fatti sempre "cum grano salis" e questo gli fa onore. Poi c'è chi incosapevolmente si fa male ogni volta che parla.

Chiarisco subisco (non per Scossa) che il tempo in excel può essere gestito come TEMPO FRA DUE PERIODI e DIFFERENZA DEL TEMPO FRA UN PERIODO SUCCESSIVO E UN PERIODO PRECEDENTE.

Faccio un esempio per Eliano (si è aggravato, consiglio ai suoi amici di stargli vicino):

Una persona per effetto di un TSO sta in ospedale Dal 01/01/2012 al 07/01/2012. E' stata ricoverata per 7 giorni. Quindi: DATA:DIFF(primaData;secondaData;"d")+1

Se invece voglio saper quanto manca alle dimissioni scrivo
DATA:DIFF(primaData;secondaData;"d")


Discorso chiuso.

Scossa diceva:

> E' anche possibile prendere un solo valore, ad esempio per i soli
> giorni:
> =INDICE(diffdata(A3;OGGI()-1);3)
> per i mesi:
> =INDICE(diffdata(A3;OGGI()-1);2)
> per gli anni:
> =INDICE(diffdata(A3;OGGI()-1);1)

I seguenti risultati non sono il frutto di un Test sulla UDF ma solo un ragionamento

> Questi alcuni risultati:
> 03/10/1980 26/01/2012 31 3 23
> 26/10/1980 26/01/2012 31 3 0
> 27/10/1980 26/01/2012 30 8 30
> 27/10/1980 27/10/2012 32 0 0
> 27/10/1980 26/10/2012 31 11 29
> 28/02/2011 01/03/2011 0 0 1
> 28/02/2012 01/03/2012 0 0 2
>
> A te testarla con date "bizzarre".

L'ho provata ad indici singoli (per scrupolo) ma già vedevo che mesi e gioni non venivano gestiti come invece fa DATA.DIFF usando "ym" e "md"

Infatti non ottengo il risultato voluto poichè è come se scrivessi DATA.DIFF in tre celle diverse per anni, mesi e giorni e non come matriciale.

Però Scossa aveva correttamente detto di non averla testata, ripeto,"cum grano salis" quindi non garantiva il risultato.

SIAMO AL PUNTO DI PARTENZA.

Colgo l'occasione per scusarmi con i professionisti che conosco e stimo per il discorso del "cerchio magico".

Se si vuole guardare il file:

http://wikisend.com/download/239920/TSO.xlsm

paoloard

unread,
Jan 28, 2012, 7:43:26 AM1/28/12
to
"eliano" ha scritto nel messaggio
news:96eba539-2196-4519...@j14g2000vba.googlegroups.com...

cut
Eliano
----------------------------

Certo che questo mese facciamo numeri eh?!? ;-))
Eliano mi fa piacere che tu stia bene.
Bye
paoloard



eliano

unread,
Jan 28, 2012, 8:26:12 AM1/28/12
to
On 28 Gen, 13:43, "paoloard" <xxp...@alice.it> wrote:
> "eliano"  ha scritto nel messaggionews:96eba539-2196-4519...@j14g2000vba.googlegroups.com...
>
> cut
> Eliano
> ----------------------------
>
> Certo che questo mese facciamo numeri eh?!? ;-))
> Eliano mi fa piacere che tu stia bene.
> Bye
> paoloard

LOL, Grazie.
E non faccio nemmeno fatica, come mi sembra faccia qualcuno.:-))
Comunque non scoraggiamolo,potrebbe essere letale.
A proposito, quando l'abbozza, due giorni dopo passero' il link.:-))
Ciao
Eliano.
P.S.
Ma tu sei un adepto o un soggiogato ??
Dichiarati, Paolo, dichiarati, cosi' ci divertiamo un po' :-))

Scossa

unread,
Jan 28, 2012, 8:57:38 AM1/28/12
to
On 28 Gen, 13:10, Santo <antileghi...@gmail.com> wrote:
>
> L'ho provata ad indici singoli (per scrupolo) ma già vedevo che mesi e gioni non venivano gestiti come invece fa DATA.DIFF usando "ym" e "md"
>
> Infatti non ottengo il risultato voluto poichè è come se scrivessi DATA.DIFF in tre celle diverse per anni, mesi e giorni e non come matriciale.
>

Scusa, puoi riportare le date e i rusultati che ti aspetteresti.

eliano

unread,
Jan 28, 2012, 9:21:50 AM1/28/12
to
Scusa elettrico, ma cosa significano le due frasi ??

Santo

unread,
Jan 28, 2012, 9:32:08 AM1/28/12
to
Scossa scrive:

> Scusa, puoi riportare le date e i risultati che ti aspetteresti?

Il mio PC è ultra sicuro e uso solo roba originale. Se vuoi puoi aprire senza paura del codice il link al file.

Se non vuoi, basta vedere la tabella che tu hai proposto quando hai scritto la function. Prova altrimenti tu stesso a usare la function.

Il discorso dell'anno bisestile lo possiamo trattare dopo così come modificare una function che functiona per trattare il tempo trascorso e non la differenza date.

Mi dispiace che tu sia stato lasciato solo in questa discussione.

Ciao

Scossa

unread,
Jan 28, 2012, 9:42:20 AM1/28/12
to
On 28 Gen, 15:32, Santo <antileghi...@gmail.com> wrote:
> Scossa scrive:
>
> > Scusa, puoi riportare le date e i risultati che ti aspetteresti?
>
> Il mio PC è ultra sicuro e uso solo roba originale. Se vuoi puoi aprire senza paura del codice il link al file.
>

Hai scritto 9 righe per dirmi di aprire un file che non può essere
scaricato ("forbidden"), quando bastava ne scrivessi due con date ed
il risultato sbagliato e quello atteso.

Comunque la mia UDF è una matriciale: restituisce una matrice di 3
elementi, e restituisce sempre lo stesso risultato (giusto o sbaglaito
che sia) sia se lo usi in forma matriciale sia che lo usi con Indice().

Scossa

unread,
Jan 28, 2012, 9:43:25 AM1/28/12
to
On 28 Gen, 15:21, eliano <falinieli...@virgilio.it> wrote:
> > > Infatti non ottengo il risultato voluto poichè è come se scrivessi DATA.DIFF in tre celle diverse per anni, mesi e giorni e non come matriciale.
>
> Scusa elettrico, ma cosa significano le due frasi ??

Non lo so, non l'ho capito neanch'io, come già detto la mia UDF è una
matriciale: restituisce una matrice di 3 elementi, e restituisce
sempre lo stesso risultato (giusto o sbaglaito che sia) sia se lo usi
in forma matriciale sia che lo usi con Indice().

By1
scossa

Santo

unread,
Jan 28, 2012, 9:42:16 AM1/28/12
to
Perchè non chiedi a chi le ha scritte?

Questo intervento non è provocatorio ma è un ulteriore invito per un caffè, conoscerci, farci quattro risate su quello che è successo. Io parto da Padova, dove devo raggiungerti?

Tranquillo non sarà un caffè alla Pisciotta.

Ciao

Santo

unread,
Jan 28, 2012, 10:01:50 AM1/28/12
to



Il giorno sabato 28 gennaio 2012 15:42:20 UTC+1, Scossa ha scritto:
> On 28 Gen, 15:32, Santo <antile...@gmail.com> wrote:

> Hai scritto 9 righe per dirmi di aprire un file che non può essere
> scaricato ("forbidden"), quando bastava ne scrivessi due con date ed
> il risultato sbagliato e quello atteso.

Mi dispiace che non hai potuto aprire il file ma ho scritto anche altre cose rispondendo in modo chiaro, pertinente ed esaustivo alla tua domanda."Cosa vuoi ottenere"


Eppoi mi contesti aspramente le nove righe a fronte di decine di post deliranti di Eliano?

Perchè non vuoi testare la tua UDF? Io l'ho fatto e mi dà risultati sbagliati.

Potresti provarla e dirmi semplicemete : TI SBAGLI!! A me funziona.

Lo so che parlo una strana lingua:l'italiano. Adesso offenditi anche tu e siamo a posto!

Ciao




Scossa

unread,
Jan 28, 2012, 10:14:11 AM1/28/12
to
On 28 Gen, 16:01, Santo <antileghi...@gmail.com> wrote:
>
> Perchè non vuoi testare la tua UDF? Io l'ho fatto e mi dà risultati sbagliati.

E' quello che vorrei fare e che farei se tu mi dicessi quali date
testare, perchè non ho voglia di provare date a caso e verificare a
manina se il risusltato è giusto o sbagliato.
Non mi sembra difficile da capire: tu hai già delle date da testare,
bene: quali sono?

Santo

unread,
Jan 28, 2012, 9:12:26 AM1/28/12
to
Mi fa piacere che Paolo (che profondamente rispetto) ti abbia dato la sua solidarietà.
Così un pò ti rianimi. Il tuo link ed eventuali tuoi suggerimenti tecnici non mi interessano. Mi interssi più come giullare (ci tengo alla tua presenza in questo trhead) che come conoscitore di Excel.Resta ti prego

>A proposito, quando l'abbozza, due giorni dopo passero' il link.:-))

Roba da asilo infantile. Chiaro sintomo di un desiderio inconscio di ritornare all'infanzia per sentirsi protetto da mamma o papa'

Comunque discutevo con Scossa ed aspetto un riscontro.

P.S. Mi ero già scusato, in quanto non affetto da idiotsmo, con quello che impropriamente avevo chiamato "cerchio magico".
I tuoi amici è giusto che ti diano solidarietà ma qualcuno dovrebbe, meglio in privato, per lo meno ammonirti.
Io semplicemente mi difendo per rispetto di me stesso e degli altri. Ho cercato tante volte di riportare la discussione a un fatto puramento tecnico ma sembra che ai frequentatori di questo post interessino di più i tuoi illogici e insensati. Con me sbatti duro. Ma sono sempre pronto a offrirti un caffè.

Ciao

Santo

unread,
Jan 28, 2012, 10:43:47 AM1/28/12
to
... e va bene "cum grano salis" (Plinius il Vecchio)
A proposito Plinius, Plinius dove sei?
Da A2 a A5 (date iniziali)
01/10/1980
08/03/1980
14/08/1979
19/01/1979

Da B2 a B5 (date finali)
01/01/2012
02/01/2012
03/01/2012
04/01/2012

Risultati con UDF utilizzando i tre indici separati
ANNI MESI GIORNI
0 1 10
30 5 6
31 5 5
32 5 7

Ciao



eliano

unread,
Jan 28, 2012, 11:01:56 AM1/28/12
to
Bah,l'OP da l'impressione di parlare a vanvera; tuttavia potrebbe
anche dipendere dal fatto che sia dotato di intelligenza superiore
alla media, per cui dovrebbe essere fuori portata, almeno della
mia.:-))
Coraggio elettrico, la vita e' bella perche' e' varia.:-D)
Eliano

eliano

unread,
Jan 28, 2012, 11:10:47 AM1/28/12
to
LOL
Pollanca, io non cerco la solidarieta' di nessuno; ed ognuno e' libero
di pensarla e di agire come vuole..
Ho gia' detto che questo e' un ambiente libero, ma questo sembra
esulare dalla tua capacita' di comprendere una realta' per te
aliena.:-))
Non so a chi ti riferivi per il caffe', ma per quanto mi riguarda, se
parti da Padova, procedi per Nord finche' non arrivi al circolo polare
artico; a quel punto siediti, mettiti comodo ed aspetta.
Eliano

Santo

unread,
Jan 28, 2012, 11:16:09 AM1/28/12
to

Devo spegnere il PC,riaccendo domani mattina

Spero nel frattempo che Scossa e/o altri elaborino qualcosa.

Ciao

Mauro Gamberini

unread,
Jan 28, 2012, 11:21:17 AM1/28/12
to

Siamo a livello della pura follia; comunque invito tutti quelli che
fanno parte del Cerchio Magico, o che hanno la qualifica di Adepti o
di Soggiogati a dichiarare all'inizio di un qualsiasi intervento la
loro appartenenza ad una di queste classi o organizzazioni.

******************************

Ciao Fratello.
Non si sta simpatici a tutti, dovresti saperlo.
Fossi in te la finirei qui, è solo un thread fra i tanti,
solo un OP fra i tanti.
Ignorali.

Con affetto.
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/

Santo

unread,
Jan 28, 2012, 11:26:38 AM1/28/12
to
Ciao, prendi le medicine ... mi raccomando.
Se senti il fiato corto, aumentare la frequenza cardiaca, vampate di calore, tremoli, impulsi aggressivi, senso di nausea e/o stimolo di vomito, chiama immediatamente il 118.

Ho finito di preoccuparmi per te. Se non vuoi curarti, sei libero anche di morire.

Però non finire di postare fino all'ultimo afflato.

Sai, "The Show must go on"

Mauro Gamberini

unread,
Jan 28, 2012, 11:31:54 AM1/28/12
to

Sai, "The Show must go on"

eliano

unread,
Jan 28, 2012, 11:43:02 AM1/28/12
to
On 28 Gen, 17:31, "Mauro Gamberini"
Ciao Mauro e occhio a come parli; il siculo potrebbe tacciarti di
mafia e poi offrirti un caffe'.:-))

Scossa

unread,
Jan 28, 2012, 11:50:19 AM1/28/12
to
On 28 Gen, 16:43, Santo <antileghi...@gmail.com> wrote:
>
> Risultati con UDF utilizzando i tre indici separati
> ANNI  MESI     GIORNI
> 0       1       10
> 30      5       6
> 31      5       5
> 32      5       7
>

Mi spiace, ma il TUO Excel ha problemi, questi sono i risultati copia-
incollati:

MATRICIALE unica {=diffdata(A16;B16)}
01/10/1980 01/01/2012 31 3 0
08/03/1980 02/01/2012 30 1 25
14/08/1979 03/01/2012 31 6 20
19/01/1979 04/01/2012 32 11 16

non matriciale coi tre indici separati
=INDICE(diffdata($A16;$B16);1)
=INDICE(diffdata($A16;$B16);2)
=INDICE(diffdata($A16;$B16);3)

01/10/1980 01/01/2012 31 3 0
08/03/1980 02/01/2012 30 1 25
14/08/1979 03/01/2012 31 6 20
19/01/1979 04/01/2012 32 11 16


Qui c'è il file (ovviamente è con macro visto che c'è l'UDF):
http://www.wikiupload.com/ZR49X7GTXZ5QTRG

Bye!
scossa

Mauro Gamberini

unread,
Jan 28, 2012, 11:50:25 AM1/28/12
to


Ciao Mauro e occhio a come parli; il siculo potrebbe tacciarti di
mafia e poi offrirti un caffe'.:-))
***************************************

Fratello, anche tu però... ma dagliela su!
Sembrate due bambini... ;-)

--
---------------------------
Mauro Gamberini

Scossa

unread,
Jan 28, 2012, 11:55:49 AM1/28/12
to
On 28 Gen, 17:50, Scossa <scossa...@gmail.com> wrote:
>                 MATRICIALE unica {=diffdata(A16;B16)}
> 01/10/1980      01/01/2012      31      3       0
> 08/03/1980      02/01/2012      30      1       25
> 14/08/1979      03/01/2012      31      6       20
> 19/01/1979      04/01/2012      32      11      16
>
>                 non matriciale coi tre indici separati
> =INDICE(diffdata($A16;$B16);1)
> =INDICE(diffdata($A16;$B16);2)
> =INDICE(diffdata($A16;$B16);3)
>
> 01/10/1980      01/01/2012      31      3       0
> 08/03/1980      02/01/2012      30      1       25
> 14/08/1979      03/01/2012      31      6       20
> 19/01/1979      04/01/2012      32      11      16

Ovviamente la formula indicata si riferisce alla prima coppia di date
in A16:B16
le altre sono in A17:A19 e B17:B19

paoloard

unread,
Jan 28, 2012, 12:03:49 PM1/28/12
to
"eliano" ha scritto nel messaggio
news:0533dc78-7c79-4dd4...@h6g2000yqk.googlegroups.com...
-----------------

Certamente un soggiogato...... da mia moglie e dai miei due gatti :-)

ciao paoloard
http://www.riolab.org

eliano

unread,
Jan 28, 2012, 12:09:48 PM1/28/12
to
On 28 Gen, 17:50, Scossa <scossa...@gmail.com> wrote:
Perche' elettrico, avevi dubbi ??

eliano

unread,
Jan 28, 2012, 12:08:53 PM1/28/12
to
On 28 Gen, 18:03, "paoloard" <xxp...@alice.it> wrote:
> "eliano"  ha scritto nel messaggionews:0533dc78-7c79-4dd4...@h6g2000yqk.googlegroups.com...
LOL
I tuoi gatti conoscono il Vba??

eliano

unread,
Jan 28, 2012, 12:07:38 PM1/28/12
to
On 28 Gen, 17:50, "Mauro Gamberini"
A parte il fatto che certe volte e' bello tornar bambini :-)))
Vedi Fratello, io rispondo, lui rientra, dice cazzate e mi sembra che
si copra di merda.:-D)
Inoltre, come diceva Paolo, facciamo numeri.:-)) [siamo a 800]
Contento lui....
Eliano

eliano

unread,
Jan 28, 2012, 11:41:01 AM1/28/12
to
LOL
Ovvio, ma questo non e' il mio spettacolo, ma il tuo; e mi sembra
abbastanza misero, ma se va bene a te, continua pure.
Fin dall'inizio tu hai insultato ed io ho risposto; basta leggere per
verificare.
Ed avrei intenzione di continuare a risponderti.

eliano

unread,
Jan 28, 2012, 4:14:23 PM1/28/12
to
A questo punto credo che l'OP, fra le altre cose, non sappia cosa
significa: Matriciale Unica.
Ma e' talmente fesso che io lo lascerei nella sua ignoranza
congenita. :-D)
Ottima UDF elettrtico, ma la formula di Barbara non lo e' da meno.
Saluti
Eliano

Scossa

unread,
Jan 28, 2012, 6:12:48 PM1/28/12
to
On 28 Gen, 17:55, Scossa <scossa...@gmail.com> wrote:
> Ovviamente la formula indicata si riferisce alla prima coppia di date
> in A16:B16
> le altre sono in A17:A19 e B17:B19

Ho aggiustato il codice dell'UDF ora mi sembra che i valori restituiti
siano corretti:

MATRICIALE unica {=diffdata(A16;B16)}
01/10/1980 01/01/2012 31 3 0
08/03/1980 02/01/2012 31 9 25
14/08/1979 03/01/2012 32 4 20
19/01/1979 04/01/2012 32 11 16

non matriciale =INDICE(diffdata($A16;$B16);1) poi ;2 poi; 3
01/10/1980 01/01/2012 31 3 0
08/03/1980 02/01/2012 31 9 25
14/08/1979 03/01/2012 32 4 20
19/01/1979 04/01/2012 32 11 16


qui il file:
http://www.wikiupload.com/KF7NEM9AV4PJQDZ

questo il codice:

Public Function DiffData(ByVal dDataOld As Date, ByVal dDataNew As
Date) As Variant
Dim aDataOld(1 To 3) As Variant
Dim aDataNew(1 To 3) As Variant
Dim aData(1 To 3) As Variant
Const anni As Integer = 1
Const mesi As Integer = 2
Const giorni As Integer = 3

Application.Volatile

aDataOld(anni) = VBA.DatePart("yyyy", dDataOld)
aDataOld(mesi) = VBA.DatePart("m", dDataOld)
aDataOld(giorni) = VBA.DatePart("d", dDataOld)

aDataNew(anni) = VBA.DatePart("yyyy", dDataNew)
aDataNew(mesi) = VBA.DatePart("m", dDataNew)
aDataNew(giorni) = VBA.DatePart("d", dDataNew)

aData(anni) = aDataNew(anni) - aDataOld(anni)
aData(mesi) = aDataNew(mesi) - aDataOld(mesi)
aData(giorni) = aDataNew(giorni) - aDataOld(giorni)

If aData(giorni) < 0 Then
aData(giorni) = Day(DateSerial(Year(dDataNew), Month(dDataNew),
0)) + aDataNew(giorni) - aDataOld(giorni)
aData(mesi) = aData(mesi) - 1
End If

If aData(mesi) < 0 Then
aData(mesi) = 12 + aData(mesi)
aData(anni) = aData(anni) - 1
End If

DiffData = aData

End Function


Bye!
scossa

Santo

unread,
Jan 29, 2012, 7:03:48 AM1/29/12
to

Excel 2007 fà i capricci con DATA.DIFF è un dato certo.

Scossa, che ringrazio, ha dato modo a me e tanti altri di risolvere il problema con una UDF la quale funziona correttamente.

Sono riuscito a mettere a nudo il lato oscuro di un uomo (?) sofferente di un disagio della personalità e a cui in ultimo dico che è molto facile insultare restando rifugiati dietro una tastiera. Vieni fuori, vigliacco.

Io ho solo usato sarcasmo e legittima difesa usando parole non triviali.

Da oggi in poi non avrai la fiducia neanche di tua moglie. Avrai solo compassione.

Non manco di salutare con stima Mauro Gamberini.

eliano

unread,
Jan 29, 2012, 8:00:19 AM1/29/12
to
LOL, splendido!!
Canta, canta quanto vuoi e truccati per quello che non sei.
In maniera idiota hai offeso tutto il NG, chiedendo poi
frettolosamente scusa, quasi con non chalance.
Sei e resti un idiota che tenta, senza successo, di truccarsi da
persona logica e coerente.
Splendida la dichiarazione di stima nei confronti di Mauro, ma non
credo che lui dimentichi le offese ricevute.
Inoltre hai un concetto molto relativo della legittima difesa, che a
me sono sembrati solo insulti ingiustificati da te rivolti anche ad
assenti.
Inoltre insisti con le offese; non vedo vigliaccheria nel mio
comportamento; infatti ho sempre risposto alle tue cazzate ed il fatto
di accusarmi di rifugiarmi dietro una tastiera, fa parte del tuo gioco
intimidatorio che,da buon siculo, assomiglia ad un comportamento
mafioso della peggior specie.:-))
E se questo ti da fastidio non so che farci; e' la mia opinione!
Eliano

eliano

unread,
Jan 29, 2012, 8:03:55 AM1/29/12
to
Ciao elettrico.
Ripeto ottima la UDF; ci aggiungerei un boolean magari optional per
coprire anche l'eventualita' di comprendere nel calcolo anche la data
iniziale; per la formula, ne ho usate due versioni, una con calcolo
normale e l'altra con calcolo esteso (il famoso +1)
Saluti
Rliano

Scossa

unread,
Jan 29, 2012, 8:19:46 AM1/29/12
to
On 29 Gen, 14:03, eliano <falinieli...@virgilio.it> wrote:
>
> Ciao elettrico.
> Ripeto ottima la UDF;

Grazie,

> ci aggiungerei un boolean magari optional per
> coprire anche l'eventualita' di comprendere nel calcolo anche la data
> iniziale; per la formula, ne ho usate due versioni, una con calcolo
> normale e l'altra con calcolo esteso (il famoso +1)

Aggiungere 1 è semplice, ho preferito aggiungere un terzo argomento
optional per avre restituito uno specifico valore (1=anni, 2=mesi,
3=giorni):

=diffdata($A29;$B29) --> matrice
=diffdata($A29;$B29;1) --> anni
=diffdata($A29;$B29;2) --> mesi
=diffdata($A29;$B29;3) --> giorni

il codice:

Public Function DiffData(ByVal dDataOld As Date, ByVal dDataNew As
Date, Optional ByVal nRet As Integer) As Variant
If nRet > 0 And nRet < 4 Then
DiffData = aData(nRet)
Else
DiffData = aData
End If

End Function



Bye!
scossa

Santo

unread,
Jan 29, 2012, 8:29:52 AM1/29/12
to
Il giorno domenica 29 gennaio 2012 14:00:19 UTC+1, eliano ha scritto:

>il fatto di accusarmi di rifugiarmi dietro una tastiera, fa parte del tuo gioco
> intimidatorio che,da buon siculo, assomiglia ad un comportamento
> mafioso della peggior specie.:-))

Ti vengo a cercare io, solo per chiarire ...


eliano

unread,
Jan 29, 2012, 8:39:14 AM1/29/12
to
Anche se questa suona come una ulteriore minaccia, non c'e' niente da
chiarire e non gradirei di essere disturbato.

eliano

unread,
Jan 29, 2012, 8:40:47 AM1/29/12
to
Perfetto, anche se non l'ho provata.

eliano

unread,
Jan 29, 2012, 8:53:24 AM1/29/12
to
On 29 Gen, 14:03, eliano <falinieli...@virgilio.it> wrote:
> Ciao elettrico.
> Ripeto ottima la UDF; ci aggiungerei un boolean magari optional per
> coprire anche l'eventualita' di comprendere nel calcolo anche la data
> iniziale; per la formula, ne ho usate due versioni, una con calcolo
> normale e l'altra con calcolo esteso (il famoso +1)
> Saluti
> Rliano- Nascondi testo citato
>
> - Mostra testo citato -

Urca, mancavano le faccine:
normale e l'altra con calcolo esteso (il famoso +1), :-))
(che poi sarebbe il famoso -1).

Santo

unread,
Jan 29, 2012, 10:22:39 AM1/29/12
to
Il giorno domenica 29 gennaio 2012 14:39:14 UTC+1, eliano ha scritto:

> Anche se questa suona come una ulteriore minaccia, non c'e' niente da
> chiarire e non gradirei di essere disturbato.

Forse volevi dire: GRADIREI DI NON ESSERE DISTURBATO

Io non minaccio nessuno. Io faccio. Cerco di programmare per la prima settimana di marzo una piccola vacanza a Pistoia. Ti telefono per incontrarci in amicizia quando sono in loco.

Ciao

eliano

unread,
Jan 29, 2012, 10:55:01 AM1/29/12
to
Risparmiati il viaggio; Non ci puo' essere amicizia fra me ed un
individuo come te.
Vorrei che questo fosse chiaro ed in caso contrario sarei costretti a
prendere i provvedimenti del caso.
A scanso di equivoci ed a tua scelta: 112 o 113. E non scherzo.

eliano

unread,
Jan 29, 2012, 12:01:09 PM1/29/12
to
On 29 Gen, 14:19, Scossa <scossa...@gmail.com> wrote:
Scusa elettrico, ma non ho capito la funzione e l'uso di nRet. Se me
la spieghi sventolero' come un tovagliolo.8-))
Per quanto riguarda il "meno 1" per comprendere nel calcolo anche
l'iniziale senza modificare i valori nelle celle, credo che il calcolo
debba partire dalla data iniziale -1,o no??

Santo

unread,
Jan 29, 2012, 1:44:05 PM1/29/12
to
Hai dimenticato un numero: il 118.

Ci vediamo

eliano

unread,
Jan 29, 2012, 4:17:19 PM1/29/12
to
On 29 Gen, 19:44, Santo <antileghi...@gmail.com> wrote:
> Hai dimenticato un numero: il 118.
>
> Ci vediamo

Tante volte non fossi stato chiaro ti ripeto il post delle 18.01:

Risparmiati il viaggio; Non ci puo' essere amicizia fra me ed un
individuo come te.
Vorrei che questo fosse chiaro ed in caso contrario sarei costretti a
prendere i provvedimenti del caso.
A scanso di equivoci ed a tua scelta: 112 o 113. E non scherzo.

E visto che non scegli, rettifico:la scelta e' mia, fin da adesso.

eliano

unread,
Jan 29, 2012, 5:18:02 PM1/29/12
to
> debba partire dalla data iniziale -1,o no??- Nascondi testo citato
>
> - Mostra testo citato -

Rettifico.

> Scusa elettrico, ma non ho capito la funzione e l'uso di nRet. Se me
> la spieghi sventolero' come un tovagliolo.8-))

Voleva essere:
Scusa elettrico, ma non ho capito la funzione e l'uso di nRet
AI FINI DEL CALCOLO DEI GIORNI PIU' O MENO EFFETTIVI

(E' maiuscolo solo per evidenziarlo meglio)

Il resto non cambia.
Eliano

Santo

unread,
Jan 30, 2012, 12:30:29 AM1/30/12
to
Forse il 115?
Però puoi sempre chiamare il telefono azzurro.
Insomma fai il numero che preferisci.

Scossa

unread,
Jan 30, 2012, 3:26:03 AM1/30/12
to
On 29 Gen, 23:18, eliano <falinieli...@virgilio.it> wrote:
> Voleva essere:
> Scusa elettrico, ma non ho capito la funzione e l'uso di nRet
> AI FINI DEL CALCOLO DEI GIORNI PIU' O MENO EFFETTIVI
>

Nulla, infatti a avevo precisato:
> Aggiungere 1 è semplice,
nel senso che se vuoi passi alla udf DataCheVuoi-1

> ho preferito aggiungere un terzo argomento
> optional per avre restituito uno specifico valore (1=anni, 2=mesi,
> 3=giorni)

che mi sembra più utile visto che ci risparmia di usare Indice() nella
formula degli esempi.

Bye!
scossa

eliano

unread,
Jan 30, 2012, 5:02:04 AM1/30/12
to
Mah, va bene; era solo per chiarezza.
Ciao
Eliano

eliano

unread,
Jan 30, 2012, 5:06:25 AM1/30/12
to
LOL
Vedo che stai "sgallettando" di meno, probabilmente hai afferrato la
situazione.:-D)
Ti informo che accogliendo la richiesta di Fratello Mauro, da qui in
avanti non rispondero' piu' alle tue sollecitazioni.
Ma tu continua pure: tutto fa brodo!
Eliano

Santo

unread,
Jan 30, 2012, 6:31:41 AM1/30/12
to
Il giorno lunedì 30 gennaio 2012 11:06:25 UTC+1, eliano ha scritto:
Io non "sgalletto", rispondo a tono.
Ero sicuro che prima o poi qualcuno ti avrebbe fermato.
Certo è difficile per uno che è stato allevato a faccine, battute e compiacenze trovare qualcuno che quando si esce fuori dai binari della sensatezza è disposto a pagare moltissimo pur di spegnerti.
Liberati dal tuo narcisismo, cerca di guardare oltre lo specchio, non insultare mai più le persone che non conosci e non misurare l'intelligenza di una persona con il metro della conoscenza di Excel. Sei troppo microbo per me.

Fra un mese rileggi questo trhead e ti renderai conto della sequenza logica e che hai scritto cose gravissime.

Un saluto a Mauro (da te mal interpretato già una volta) che ripeto stimo per la serietà e perchè mi ha sempre aiutato molto anche predendomi per mano.
Infatti quando lui ha tacciato me e te di "essere bambini" io non l'ho contestato, invece tu ne hai preso spunto per alimentare il fuoco.

Le mie scuse al presunto "cerchio magico" sono state un atto dovuto e non la volontà di imbonirmi qualcuno.
Io quando sbaglio chiudo scusa anche a un bambino di 10 anni.

Pistoia comunque è una città bellissima e conto veramente di visitarla. Spero con buon umore.

Cala il sipario. Gli applausi e lo sdegno sono finiti. Se hai ancora qualcosa da dirmi fallo in privato attrarso la mia e-mail

Lasciamo la gente in pace.

eliano

unread,
Jan 30, 2012, 6:54:57 AM1/30/12
to
Ti ripeto il post di qualche minuto fa.
Ti informo che accogliendo la richiesta di Fratello Mauro, da qui in
avanti non rispondero' piu' alle tue sollecitazioni.
Ma tu continua pure: tutto fa brodo!
Eliano
P.S.
Nessun contato please; quello che e' stato fatto ormai e' fatto!!

Santo

unread,
Jan 30, 2012, 7:29:14 AM1/30/12
to
Io invece vedo che c'è ancora da fare e ribadisco per intero il mio post precedente.

Ti contraddici, in quanto "grazie a Fratello Mauro", in teoria non avresti dovuto rispondere e non dovresti rispondere neanche a questo post.

Il tuo lato oscuro è ormai emerso e farà riflettere anche i tuoi amici.

Tu continui e io continuo. Tu ti fermi e mi fermo. Ascolta il consiglio di "Fratello Mauro". Ti conviene.

La Function avrebbe già dovuto spegnere il tuo istinto ma vedo purtroppo che non si tratta di istinto ma di pulsione

Il tempo farà giustizia.



eliano

unread,
Jan 30, 2012, 8:08:31 AM1/30/12
to

Santo

unread,
Jan 30, 2012, 10:00:34 AM1/30/12
to
Sorrido.

eliano

unread,
Feb 1, 2012, 3:16:49 PM2/1/12
to
On 30 Gen, 09:26, Scossa <scossa...@gmail.com> wrote:
Ciao Elettrico.
Pago un debito: http://tinyurl.com/87m22oj
La formula di Barbara, come dissi a Nur: troppo semplice nella sua
genialita'.

=" "&ANNO(OGGI())-ANNO(A1)-(MESE(OGGI())<MESE(A1))&" anni -
"&12*(MESE(OGGI())<MESE(A1))+MESE(OGGI())-MESE(A1)-
(GIORNO(OGGI())<GIORNO(A1))&" mesi -
"&DATA(ANNO(OGGI());MESE(OGGI());GIORNO(OGGI()))-
DATA(ANNO(OGGI());MESE(OGGI())-
(GIORNO(OGGI())<GIORNO(A1));GIORNO(A1))&" giorni "
By Barbara NON tiene conto del giorno di partenza

=" "&ANNO(OGGI())-ANNO(A1)-(MESE(OGGI())<MESE(A1))&" anni -
"&12*(MESE(OGGI())<MESE(A1))+MESE(OGGI())-MESE(A1)-
(GIORNO(OGGI())<GIORNO(A1)-1)&" mesi -
"&DATA(ANNO(OGGI());MESE(OGGI());GIORNO(OGGI()))-
DATA(ANNO(OGGI());MESE(OGGI())-
(GIORNO(OGGI())<GIORNO(A1)-1);GIORNO(A1)-1)&" giorni "
By Barbara tiene conto del giorno di partenza

Comunque continuo ad usare DATA.DIFF() che con XL2003 non fa una
piega.
Saluti
Eliano

Scossa

unread,
Feb 1, 2012, 4:05:11 PM2/1/12
to
C'è qualcosa che non quadra:
01/01/2011 01/01/2012 1 anni ; 1 mesi; 0 giorni

con la mia UDF:
01/01/2011 01/01/2012 1 0 0

Bye!
scossa

eliano

unread,
Feb 1, 2012, 4:39:32 PM2/1/12
to
> scossa- Nascondi testo citato
>
> - Mostra testo citato -

Ahi, te la provo domani, mi sono spostato e qui non ho excel, sorry
Eliano

eliano

unread,
Feb 1, 2012, 4:53:39 PM2/1/12
to
> Eliano- Nascondi testo citato
>
> - Mostra testo citato -

Scusa elettrico, per favore mi posti la formula perche' leggendo la
formula con OGGI() mi sembra che vada.
Grazie
Eliano
P.S.
Comunque fino a domani non la posso provare.:-((

Scossa

unread,
Feb 1, 2012, 5:01:21 PM2/1/12
to
On 1 Feb, 22:53, eliano <falinieli...@virgilio.it> wrote:

> Scusa elettrico, per favore mi posti la formula perche' leggendo la
> formula con OGGI() mi sembra che vada.
> Grazie
> Eliano
> P.S.
> Comunque fino a domani non la posso provare.:-((

SCUSA, ho preso una vista colossale, non avevo notato il riferimento a
Oggi().

La formula postata FUNZIONA perfettamente:

=ANNO(B1)-ANNO(A1)-(MESE(B1)<MESE(A1))&" anni ;
"&12*(MESE(B1)<MESE(A1))+MESE(B1)-MESE(A1)-(GIORNO(B1)<GIORNO(A1))&"
mesi; "&DATA(ANNO(B1);MESE(B1);GIORNO(B1))-DATA(ANNO(B1);MESE(B1)-
(GIORNO(B1)<GIORNO(A1));GIORNO(A1))&" giorni"

Bye!
scossa

It is loading more messages.
0 new messages