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

formato ora con input automatizzato

1,287 views
Skip to first unread message

a

unread,
Feb 26, 2008, 4:48:08 PM2/26/08
to
uso un foglio per calcolare somme di tempi incolonnati. Ne vanno inseriti
molti ed ogni volta devo digitarli componendo la cifra delle ore poi i due
punti (combinazione di due tasti) poi la cifra dei minuti e per ultimo
invio. Capirete che dovendo inserire un centinaio di orari alla volta,
questa procedura, oltre che essere poco comoda, produce con facilità errori.
Non sono stato in grado di trovare un modo per inserire le quatto cifre
dell'orario battendo semplicemente i caratteri che la compongono e poi invio
avendo nella cella lo stesso valore immesso, come se la digitassi con il
criterio di cui sopra, e pronto per essere sommato al successivo ... grazie

Ale


giovanna

unread,
Feb 26, 2008, 5:06:03 PM2/26/08
to
Il 26/02/2008, a ha detto :

ciao,
mmh... io posso dirti solo:
perché non usi il punto come separatore? Un po' più veloce lo
sarebbe!:-)

--
ciao
giovanna
.......................
www.riolab.org
.........................


a

unread,
Feb 26, 2008, 5:19:23 PM2/26/08
to
"giovanna" <giovan...@asiatiscali.it> ha scritto nel messaggio > ciao,

> mmh... io posso dirti solo:
> perché non usi il punto come separatore? Un po' piů veloce lo sarebbe!:-)
> giovanna

Forse non colgo qualcosa dei meccanismi del programma ma se scrivo in una
cella (formato ora) 8.28 invece che 8:28 nella cella stessa appare 6.43!
ale
grazie


eliano

unread,
Feb 26, 2008, 5:37:00 PM2/26/08
to

"a" ha scritto:

> "giovanna" <giovan...@asiatiscali.it> ha scritto nel messaggio > ciao,
> > mmh... io posso dirti solo:

> > perché non usi il punto come separatore? Un po' più veloce lo sarebbe!:-)


> > giovanna
>
> Forse non colgo qualcosa dei meccanismi del programma ma se scrivo in una
> cella (formato ora) 8.28 invece che 8:28 nella cella stessa appare 6.43!
> ale
> grazie
>
>

Ciao a.
Anche se formatti le celle con: Ora "13.30" ??
Ciao giovanna
Eliano

a

unread,
Feb 26, 2008, 5:45:20 PM2/26/08
to
"eliano" <eli...@discussions.microsoft.com> ha scritto nel messaggio
news:28DF8DFE-B26C-4AAE-A902-> Anche se formatti le celle con: Ora "13.30"
??
> Ciao giovanna
> Eliano

Si, e sono formattate proprio cosě!
se provi dovrebbe funzionare cosě pure per te .... non credo di sbagliare
qualcosa ... č piů probabile che "non" faccia qualcosa ma a saperla!
Ale


giovanna

unread,
Feb 26, 2008, 5:57:04 PM2/26/08
to
Il 26/02/2008, a ha detto :
> "eliano" <eli...@discussions.microsoft.com> ha scritto nel messaggio
> news:28DF8DFE-B26C-4AAE-A902-> Anche se formatti le celle con: Ora "13.30" ??
>> Ciao giovanna
>> Eliano
>
> Si, e sono formattate proprio così!
> se provi dovrebbe funzionare così pure per te .... non credo di sbagliare
> qualcosa ... è più probabile che "non" faccia qualcosa ma a saperla!
> Ale

eccomi... (ciao Eliano!)
Ale,
non so se possa essere questo, non so molto..:
prova da Pannello di controllo, Opzioni internazionali e della lingua.
Vedi il formato Ora. Il mio è impostato con il punto separatore.
Prova...

a

unread,
Feb 26, 2008, 6:16:11 PM2/26/08
to
"giovanna" <giovan...@asiatiscali.it> ha scritto nel messaggio
> non so se possa essere questo, non so molto..:
> prova da Pannello di controllo, Opzioni internazionali e della lingua.
> Vedi il formato Ora. Il mio è impostato con il punto separatore.
> Prova...

c'è il punto ... ma te con una cella formato ora 13.30 se digiti 8.48 +
invio che risultato hai?

eliano

unread,
Feb 26, 2008, 6:27:00 PM2/26/08
to

"a" ha scritto:

Non nella cella:

13.30 8.48 22.18
in C1 =A1+B1

a

unread,
Feb 26, 2008, 6:52:16 PM2/26/08
to
"eliano" <eli...@discussions.microsoft.com> ha scritto nel messaggio
news:1FE27456-47C0-433F...@microsoft.com...

> Non nella cella:
>
> 13.30 8.48 22.18
> in C1 =A1+B1

il mio problema è che per fare trattare i numeri incolonnati in
A1.......A100 come orari da sommare il cui totale sia in A101 (per esempio)
io devo dare alle 100 celle in questione il formato "ora 13.30" (scegliendo
proprio formato celle/ora/13.30). Il tutto poi funziona perchè la somma la
faccio correttamente ma per fare in modo che nella cella appaia il tempo in
ore e minuti che voglio scrivere io, devo digitarlo con due cifre (le ore)
ore + due punti + altre due cifre (i minuti) ed invio. Se al posto dei due
punti metto solo "un" punto (che sarebbe già più rapido) e volendo inserire
come tempo 8 ore e 48 minuti nella cella, dopo l'invio, mi compare11.31 !!!
Confermo di nuovo che se uso i due punti come separatore tra ore e minuti
l'orario inserito mi compare (correttamente) 8.48 .... io però, dovendo
lavorarci spesso con questo foglio, trovo decisamente scomodo e fonte di
numerosi errori nonchè di perdite di tempo usare questo metodo e mi
domandavo se ne esistesse un altro che mi permettesse di digitare
semplicemente le 4 cifre (ore seguite immediatamente dai minuti senza nè uno
nè due punti) e poi dare invio ..... risparmierei tempo e fatica!

Ma a te, ripeto la domanda, se dai ad una cella qualsiasi il formato ora e
scegli di fianco 13.30, quando inserisci 8.48 (separando con un solo punto)
che ti compare nella cella dopo aver dato invio?

Grazie di nuovo
ale


eliano

unread,
Feb 26, 2008, 8:12:01 PM2/26/08
to

"a" ha scritto:

Ciao Ale.
Ma ce l'hai con me ??
Sto scherzando ovviamente, e quello che vedi nel mio post precedente non
l'ho scritto in diretta, ma l'ho copiato da un foglio Excel. Si fa così
normalmente.:-))
Uso XL2003 e se vuoi ti posso mandare un foglio di prova; anzi se
l'indirizzo è giusto te lo mando subito.
Comunque mai mettere un indirizzo vero, meglio non metterlo o mascherarlo se
non vuoi ricevere qualche tonnellata di spam.
Eliano

eliano

unread,
Feb 26, 2008, 8:21:01 PM2/26/08
to

"eliano" ha scritto:

Inviato; ma cambia indirizzo, non si sa mai.

a

unread,
Feb 27, 2008, 5:20:32 AM2/27/08
to

"eliano" <eli...@discussions.microsoft.com> ha scritto nel messaggio
news:4F2AF722-FC1E-4DCB...@microsoft.com...
>
>
> "eliano" ha scritto:

>> Ciao Ale.
>> Ma ce l'hai con me ??
>> Sto scherzando ovviamente, e quello che vedi nel mio post precedente non
>> l'ho scritto in diretta, ma l'ho copiato da un foglio Excel. Si fa cosě

>> normalmente.:-))
>> Uso XL2003 e se vuoi ti posso mandare un foglio di prova; anzi se
>> l'indirizzo č giusto te lo mando subito.

>> Comunque mai mettere un indirizzo vero, meglio non metterlo o mascherarlo
>> se
>> non vuoi ricevere qualche tonnellata di spam.
>> Eliano
>
> Inviato; ma cambia indirizzo, non si sa mai.

ma ... scherzi??
non ce l'ho assolutamente con te!
adesso vedo il foglio che mi hai mandato
per quanto riguarda il mascheramento ... cosa sarebbe meglio fare?
per non intasare qui potresti suggerirmi in privato...grazie in ogni caso


a

unread,
Feb 27, 2008, 6:03:17 AM2/27/08
to
in ogni caso, dopo aver messo a posto questo rebus (a questo punto un
problema di tastiera o di interfaccia) , sarà sempre utile trovare il modo
di eliminare la macchinosità del punto (o doppio punto che sia) e poter
digitare solo le quattro cifre più invio

comunque, grazie del tempo dedicatomi

ale

Mauro Gamberini

unread,
Feb 27, 2008, 6:08:25 AM2/27/08
to
> di eliminare la macchinosità del punto (o doppio punto che sia) e poter
> digitare solo le quattro cifre più invio
>

Ho una domanda.
1230 è ovvio,
ma 0100 è altrettanto ovvio?
Nel senso tu inserisci tutte e quattro le cifre?
E lo fai sempre e comunque?

--
---------------------------
Mauro Gamberini
http://www.riolab.org/


a

unread,
Feb 27, 2008, 7:19:21 AM2/27/08
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:uO08TETe...@TK2MSFTNGP02.phx.gbl...

> Ho una domanda.
> 1230 è ovvio,
> ma 0100 è altrettanto ovvio?
> Nel senso tu inserisci tutte e quattro le cifre?
> E lo fai sempre e comunque?

No, chiaramente. Se devo inserire un tempo di 3 ore e venti minuti (per
esempio) io digito 3:20 (punto o due punti...poi vedrò, abbiamo visto che è
un problema della mia macchina). Ma se dovessi essere obbligato per effetto
di un'eventuale regola procedurale a digitarne sempre quattro (es 0320) non
sarebbe un problema tanto le mani sono in ogni caso già sul tastierino
numerico. Ciò a cui punto, è avere un metodo per incolonnare un certo numero
di tempi (ed avere un totale nell'ultima casella più in basso) e di poterli
inserire mediante una procedura rapida tipo, appunto, digito quattro cifre
dove le prime due sono sempre ore e le seconde sempre minuti, e poi
semplicemente invio (che è a due passi dalle cifre battute).

Ciao!
ale


Maurizio Borrelli

unread,
Feb 27, 2008, 7:43:25 AM2/27/08
to
"a" wrote in message
news:dzcxj.23575$FR.1...@twister1.libero.it:
> "Mauro Gamberini" ha scritto nel
> messaggio news:uO08TETe...@TK2MSFTNGP02.phx.gbl...

[...]


> Se devo inserire un tempo di 3 ore e venti minuti (per
> esempio) io digito 3:20 (punto o due punti...poi vedrò, abbiamo visto che è
> un problema della mia macchina). Ma se dovessi essere obbligato per effetto
> di un'eventuale regola procedurale a digitarne sempre quattro (es 0320) non
> sarebbe un problema tanto le mani sono in ogni caso già sul tastierino
> numerico. Ciò a cui punto, è avere un metodo per incolonnare un certo numero
> di tempi (ed avere un totale nell'ultima casella più in basso) e di poterli
> inserire mediante una procedura rapida tipo, appunto, digito quattro cifre
> dove le prime due sono sempre ore e le seconde sempre minuti, e poi
> semplicemente invio (che è a due passi dalle cifre battute).

Ciao ale.

Un modo, che puo' piacere o non piacere. In "A1" digiti:

820

Assegni a "A1" il formato:

00:00

Poi converti in orario, per esempio in "B1":

=ORARIO(TRONCA(A1/100);RESTO(A1;100);0)

e i calcoli delle ore li fai su "B1".

Se vuoi una convalida dell'immissione in "A1":

=TESTO(A1;"000")=TESTO(ORARIO(TRONCA(A1/100);RESTO(A1;100);0);"hmm")

(Scritto in fretta senza verificare)
(Facci sapere se e eventualmente come hai risolto. Grazie!)

--
Maurizio Borrelli [Microsoft MVP - Excel]
http://www.riolab.org/

a

unread,
Feb 27, 2008, 8:16:05 AM2/27/08
to
"Maurizio Borrelli" <maurizio...@freepass.it> ha scritto nel messaggio
news:ecwz05Te...@TK2MSFTNGP05.phx.gbl...

> Ciao ale.
> Un modo, che puo' piacere o non piacere. In "A1" digiti:
> 820
> Assegni a "A1" il formato:
> 00:00
> Poi converti in orario, per esempio in "B1":
> =ORARIO(TRONCA(A1/100);RESTO(A1;100);0)
> e i calcoli delle ore li fai su "B1".
> Se vuoi una convalida dell'immissione in "A1":
> =TESTO(A1;"000")=TESTO(ORARIO(TRONCA(A1/100);RESTO(A1;100);0);"hmm")
> (Scritto in fretta senza verificare)
> (Facci sapere se e eventualmente come hai risolto. Grazie!)

> Maurizio Borrelli [Microsoft MVP - Excel]
> http://www.riolab.org/

Grazie anche a te,

oggi sono oberato di lavoro ma conto di fare un test al piů tardi domani e
poi sicuramente lascerň una traccia del risultato di questo suggerimento.

Io perň, nella mia ignoranza, penserei anche ad un modulo tipo record di un
database nel quale inserire due campi: il dato da digitare ed un totale
progressivo. il campo del dato da sommare (l'unico che puň essere
digitabile) potrebbe essere automatizzato, assoggettandolo a qualche
condizionamento, come vorrei io ?

Voi scrivete pure se avete tempo e voglia io vi leggerň appena ho un attimo
libero!
ciao!
Ale


giovanna

unread,
Feb 27, 2008, 9:10:52 AM2/27/08
to
Il 27/02/2008, a ha detto :

>
> c'è il punto ... ma te con una cella formato ora 13.30 se digiti 8.48 + invio
> che risultato hai?

Ti rispondo anche io....
Non mi si presenta il tuo inconveniente.
Vedo che ti stanno aiutando, risolverai!

Maurizio Borrelli

unread,
Feb 27, 2008, 10:44:15 AM2/27/08
to
"Maurizio Borrelli" wrote in message
news:ecwz05Te...@TK2MSFTNGP05.phx.gbl:

> "a" wrote in message
> news:dzcxj.23575$FR.1...@twister1.libero.it:

[...]


> > Se devo inserire un tempo di 3 ore e venti minuti (per
> > esempio) io digito 3:20 (punto o due punti...poi vedrò, abbiamo visto che è
> > un problema della mia macchina). Ma se dovessi essere obbligato per effetto
> > di un'eventuale regola procedurale a digitarne sempre quattro (es 0320) non
> > sarebbe un problema tanto le mani sono in ogni caso già sul tastierino
> > numerico. Ciò a cui punto, è avere un metodo per incolonnare un certo numero
> > di tempi (ed avere un totale nell'ultima casella più in basso) e di poterli
> > inserire mediante una procedura rapida tipo, appunto, digito quattro cifre
> > dove le prime due sono sempre ore e le seconde sempre minuti, e poi
> > semplicemente invio (che è a due passi dalle cifre battute).

> Un modo, che puo' piacere o non piacere. In "A1" digiti:
> 820
> Assegni a "A1" il formato:
> 00:00
> Poi converti in orario, per esempio in "B1":
> =ORARIO(TRONCA(A1/100);RESTO(A1;100);0)

-oppure-

=ORARIO.VALORE(TESTO(A1;"0:00"))

> e i calcoli delle ore li fai su "B1".
> Se vuoi una convalida dell'immissione in "A1":
> =TESTO(A1;"000")=TESTO(ORARIO(TRONCA(A1/100);RESTO(A1;100);0);"hmm")

-oppure-

=TESTO(A1;"000")=TESTO(ORARIO.VALORE(TESTO(A1;"0:00"));"hmm")

a

unread,
Feb 27, 2008, 3:51:15 PM2/27/08
to

"giovanna" <giovan...@asiatiscali.it> ha scritto nel messaggio
news:mn.db8e7d829...@asiatiscali.it...

> Il 27/02/2008, a ha detto :

> Ti rispondo anche io....


> Non mi si presenta il tuo inconveniente.
> Vedo che ti stanno aiutando, risolverai!


si ... diciamo che più o meno ho risolto con le formule di Maurizio
mi rimane però la curiosità del capire come si fa a cosruire quel tipo di
filtro in ingresso dei dati digitati

comunque grazie
ale


Maurizio Borrelli

unread,
Feb 27, 2008, 4:01:15 PM2/27/08
to
"a" wrote in message
news:73kxj.23950$FR.1...@twister1.libero.it:

Ciao ale.

[...]


> diciamo che più o meno ho risolto con le formule di Maurizio

Vuoi parlarci del "meno"?

> mi rimane però la curiosità del capire come si fa a cosruire quel tipo di
> filtro in ingresso dei dati digitati

A cosa ti riferisci?

a

unread,
Feb 27, 2008, 6:21:19 PM2/27/08
to

"Maurizio Borrelli" <maurizio...@freepass.it> ha scritto nel messaggio
news:%23SyRDQY...@TK2MSFTNGP04.phx.gbl...

> Vuoi parlarci del "meno"?

Il meno era che copiando la fromula sulle righe interesssate, dove non
esisteva un valore digitato in A1 in B1 compariva 12.00 AM ma senza che
questo tempo partecipasse al totale. Scegliendo come formato celle
Personalizzato/h.mm scompare 12:00 AM e compare 0.00 ... quisquigglie!

>> mi rimane però la curiosità del capire come si fa a cosruire quel tipo di
>> filtro in ingresso dei dati digitati
>
> A cosa ti riferisci?

Mi riferisco alla curiosità sul come si possa fare apparire direttamente
nella cella A1 un tempo digitato con quattro cifre, formattato ore.minuti e
pronto pere essere sommato al contatore. Solo una questione di forma (e solo
per curiosità) perchè il problema del calcolo, così hai suggerito tu, lo ho
risolto. Grazie

Ale


a

unread,
Feb 29, 2008, 4:03:12 AM2/29/08
to

"eliano" <eli...@discussions.microsoft.com> ha scritto nel messaggio
news:3DA2D571-534B-4E63...@microsoft.com...
> Ciao ale.
> Non ho capito, ma se nel foglio rachitico che ti ho inviato scrivi un
> orario, tipo 12,34 che cosa succede? Grazie
> Eliano

Non vorrei avere creato dubbi .... il conto č risolto (grazie a voi...gli
esempi che mi avete suggerito funzionano tutti) e abbiamo trovato pure il
modo di buttare una tastiera che non sapevamo non funzionasse piů. Poi, ma
solo per curiositŕ, mi sarebbe piaciuto capire anche come si puň fare a
digitare solo 4 cifre ed invio per sveltire l'immissione dati nelle celle da
sommare, ma questo non č poi cosě importante. Un foglio che girava quě in
ufficio tempo fa (fatto proprio per questo) aveva questa feature ed era
comodissimo.

Grazie a tutti
Ale


Mauro Gamberini

unread,
Feb 29, 2008, 4:38:29 AM2/29/08
to
> Non vorrei avere creato dubbi .... il conto č risolto (grazie a voi...gli
> esempi che mi avete suggerito funzionano tutti) e abbiamo trovato pure il
> modo di buttare una tastiera che non sapevamo non funzionasse piů. Poi, ma
> solo per curiositŕ, mi sarebbe piaciuto capire anche come si puň fare a
> digitare solo 4 cifre ed invio per sveltire l'immissione dati nelle celle
> da sommare, ma questo non č poi cosě importante. Un foglio che girava quě
> in ufficio tempo fa (fatto proprio per questo) aveva questa feature ed era
> comodissimo.
>

No testata, da copia/incollare nel modulo di codice
*del foglio* dove immetti i dati. Qui colonna A:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo RigaErrore

With Target

Application.EnableEvents = False

If .Column = 1 Then

If Len(.Value) <> 4 Then
MsgBox "Valore non valido"
.Value = ""
Application.EnableEvents = True
Exit Sub
End If

.Value = Left(.Value, 2) & ":" & Right(.Value, 2)

End If

End With

RigaChiusura:
Application.EnableEvents = True
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub

a

unread,
Feb 29, 2008, 7:46:49 AM2/29/08
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:%238RzYbr...@TK2MSFTNGP02.phx.gbl...

Grande aiuto ... grazie mille


Maurizio Borrelli

unread,
Feb 29, 2008, 9:07:56 AM2/29/08
to
"Mauro Gamberini" wrote in message
news:#8RzYbre...@TK2MSFTNGP02.phx.gbl:

> > Non vorrei avere creato dubbi .... il conto è risolto (grazie a voi...gli


> > esempi che mi avete suggerito funzionano tutti) e abbiamo trovato pure il

> > modo di buttare una tastiera che non sapevamo non funzionasse più. Poi, ma
> > solo per curiosità, mi sarebbe piaciuto capire anche come si può fare a


> > digitare solo 4 cifre ed invio per sveltire l'immissione dati nelle celle

> > da sommare, ma questo non è poi così importante. Un foglio che girava quì

Ciao Mauro.

Sara' l'eta'... ma a me queste cose contro-natura non piacciono piu'...
Tuttavia, come dicevano i miei insegnanti, se opportunamente
stimolato... propongo (tutta da verificare!) la seguente impostazione,
che non e' legata a un particolare intervallo ma "reagisce" al
cambiamento delle celle alle quali e' stata assegnata la formattazione:

[<1]hh.mm;00":"00

' ThisWorkbook - Workbook Class Module
'
Option Explicit

Private Const cstrFormatHHMM = "[<1]hh:mm;00"":""00"

Private Sub Workbook_SheetChange(ByVal Sh As Object _
, ByVal Target As Excel.Range)
Dim rng As Excel.Range
Dim strValue As String

If StrComp(TypeName(Sh) _
, "Worksheet" _
, vbTextCompare) Then Exit Sub
If Application.CutCopyMode Then Exit Sub

With Target
If .Count = 1 Then
If .NumberFormat = cstrFormatHHMM Then
If Not IsEmpty(.Value) Then
strValue = CStr(.Value)
If Len(strValue) > 4 Then
InputError strValue
Else
Application.EnableEvents = False
On Error Resume Next
.Value = TimeValue(Format$(.Value, "00:00"))
If Err Then InputError strValue
On Error GoTo 0
Application.EnableEvents = True
End If
End If
End If
End If
End With

Set rng = Nothing
End Sub

Private Sub InputError(ByVal WrongValue As String)
MsgBox "'" & WrongValue & "'" _
, vbExclamation Or vbOKOnly _
, "Immissione errata"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Sub

Mauro Gamberini

unread,
Feb 29, 2008, 9:54:53 AM2/29/08
to
"Maurizio Borrelli" <maurizio...@freepass.it> ha scritto
>, se opportunamente stimolato...

--
---------------------------
Mauro Guttalax
http://www.riolab.org/


Maurizio Borrelli

unread,
Feb 29, 2008, 12:01:33 PM2/29/08
to
"Maurizio Borrelli" wrote in message
news:eWvjDyte...@TK2MSFTNGP05.phx.gbl:

Ciao a tutti.

[...]


> propongo (tutta da verificare!) la seguente impostazione,
> che non e' legata a un particolare intervallo ma "reagisce" al
> cambiamento delle celle alle quali e' stata assegnata la formattazione:
> [<1]hh.mm;00":"00

Forse non e' inutile aggiungere che la routine funziona allo stesso modo
con praticamente qualsiasi formattazione di orario. L'unica accortezza
da avere e' quella di assegnare alla costante:

cstrFormatHHMM

il valore della stringa di formato nella versione internazionale. Per
esempio, se vogliamo che la routine intercetti l'immissione nelle celle
aventi formato italiano:

h.mm

dovremo scrivere:

Private Const cstrFormatHHMM = "h:mm"

Tale stringa la si puo' ricavare, dopo aver assegnato il formato "h.mm"
a una cella, per esempio "A1", digitando nella finestra Immediata:

?[a1].numberformat

Fatto questo, l'immissione di valori in tutte le celle della cartella
cui e' stato assegnato il formato "h.mm" sara' controllata dalla
routine.

Maurizio Borrelli

unread,
Feb 29, 2008, 2:47:18 PM2/29/08
to
"Maurizio Borrelli" wrote in message
news:#lSmFTve...@TK2MSFTNGP05.phx.gbl:

[...]
> > propongo (tutta da verificare!) la seguente impostazione,
> > che non e' legata a un particolare intervallo ma "reagisce" al
> > cambiamento delle celle alle quali e' stata assegnata la formattazione:
> > [<1]hh.mm;00":"00
> Forse non e' inutile aggiungere che la routine funziona allo stesso modo
> con praticamente qualsiasi formattazione di orario. L'unica accortezza
> da avere e' quella di assegnare alla costante:
> cstrFormatHHMM
> il valore della stringa di formato nella versione internazionale. Per
> esempio, se vogliamo che la routine intercetti l'immissione nelle celle
> aventi formato italiano:
> h.mm
> dovremo scrivere:
> Private Const cstrFormatHHMM = "h:mm"
> Tale stringa la si puo' ricavare, dopo aver assegnato il formato "h.mm"
> a una cella, per esempio "A1", digitando nella finestra Immediata:
> ?[a1].numberformat
> Fatto questo, l'immissione di valori in tutte le celle della cartella
> cui e' stato assegnato il formato "h.mm" sara' controllata dalla
> routine.

Ciao a tutti.

Variante che prevede l'immissione degli orari nelle due forme:

7.40

740

A cella vuota, perche' cio' sia possibile, occorre:

- Immettere almeno una volta l'orario nel formato:

7.40

-oppure-

- Assegnare alla cella il formato:

h.mm

Fatta *una* di queste due cose, si potra' continuare a immettere in tale
cella gli orari indifferentemente nelle due forme.

*Da testare!*

' ThisWorkbook - Workbook Class Module
'
Option Explicit

Private Const cstrFormatHHMM = "h:mm"

Private Sub Workbook_SheetChange(ByVal Sh As Object _
, ByVal Target As Excel.Range)

Dim strFormula As String
Dim strValue As String

If StrComp(TypeName(Sh) _
, "Worksheet" _
, vbTextCompare) Then Exit Sub
If Application.CutCopyMode Then Exit Sub

With Target
If .Count = 1 Then

If Not IsEmpty(.Value) Then


If .NumberFormat = cstrFormatHHMM Then

If CStr(.Value) = Format$(.Value, "0") Then


strValue = CStr(.Value)
If Len(strValue) > 4 Then
InputError strValue
Else
Application.EnableEvents = False
On Error Resume Next
.Value = TimeValue(Format$(.Value, "00:00"))
If Err Then InputError strValue
On Error GoTo 0
Application.EnableEvents = True
End If
End If
End If
End If

End If
End With

a

unread,
Feb 29, 2008, 4:53:22 PM2/29/08
to
Non pensavo di avere scatenato questo bordello !!!!
Ale


Maurizio Borrelli

unread,
Feb 29, 2008, 5:02:13 PM2/29/08
to
"a" wrote in message
news:m9%xj.257233$%k.38...@twister2.libero.it:

> Non pensavo di avere scatenato questo bordello !!!!

Ciao Ale.

Scusaci.

:D

0 new messages