Ale
ciao,
mmh... io posso dirti solo:
perché non usi il punto come separatore? Un po' più veloce lo
sarebbe!:-)
--
ciao
giovanna
.......................
www.riolab.org
.........................
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
"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
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...
c'è il punto ... ma te con una cella formato ora 13.30 se digiti 8.48 +
invio che risultato hai?
"a" ha scritto:
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
"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" ha scritto:
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
comunque, grazie del tempo dedicatomi
ale
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/
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
[...]
> 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/
> 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
>
> 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!
[...]
> > 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")
> 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
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?
> 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
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
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
Grande aiuto ... grazie mille
> > 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 Guttalax
http://www.riolab.org/
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:
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.
[...]
> > 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:
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
> Non pensavo di avere scatenato questo bordello !!!!
Ciao Ale.
Scusaci.
:D