22-02-2018,22:52 (Questo messaggio è stato modificato l'ultima volta il: 24-02-2018,19:55 da Marrio.)
Salve avrei bisogno di un aiuto
Vorrei inserire automaticamente in una cella l'ora attuale da formula.
Mi spiego con un esempio.
Cella A10 dove inserire ora attuale, se A11 <>""; usando La formula in A10:
SE(A11<>"";ADESSO();"") ho il problema che contrariamente a quanto riportato dall' help in linea, la funzione Adesso() viene ricalcolata ad ogni aggiornamento di una qualsiasi cella,quindi anche l'orario viene continuamente aggiornato.
Esiste la possibilità tramite il menu inserisci di mettere l'orario senza ricalcolo automatico, ma è una cosa da fare manualmente ed avrei necessità di automatizzare la cosa.
A quanto capisco dovrei scrivere un Add In ma non saprei proprio come fare.
Saluti e grazie e forza Majorana
La funziona ADESSO() fa comunque il suo dovere.
Restituisce sempre la data e l'ora di adesso; e adesso man mano che passa il tempo è sempre diverso, non trovi?
Se riapri o aggiorni il foglio, cambierà. Quindi bisogna trovare un'altra soluzione.
Forse se ti spieghi meglio, si riesce a trovare un'alternativa.
Non capisco cosa possa essere l'Add In.
Ciao
Per bloccare la funzione ADESSO() nella cella senza il ricalcolo del tempo, selezionala, premi F2 e F9, e salva il file. Chiudi e riapri dopo un paio di minuti e vedrai l'orario non ricalcolato.
Esatabad, So che la funzione adesso() fa a logica il suo dovere, ma dall'estratto della guida in linea che allego mi ero illuso che Adesso() non ricalcolasse.
Gli Add In sempre dalla guida in linea sono funzioni aggiuntive programmate dall'utente (programmatore) con il linguaggio adatto.
X SG1 e X Patel e X tutti che ringrazio le soluzioni proposte non mi sono funzionali esiste già la possibilità di fare un paio di clic ed avere l'ora fissata nella cella (Menu INSERISCI inserisci Ora) non ultimo scriverla manualmente, ma per problemi legati alla competenza e alla nazionalità degli operatori sarebbe preferibile che questi ultimi inserissero solo un codice numerico di massimo 2 cifre e tutti i conseguenti dati si applicassero automaticamente. Capisco che così e poco chiaro, quindi allego un file di esempio.
Mi occorrerebbe una funzione che inserendo un numero nella cella Bx sotto la voce Op. inserisse in automatico l'ora corrente nella cella Ax e una volta inserita questa ora non variasse. È l'ora di inizio dell'operazione X e così via.
Secondo me ci vuole una funzione definita dall'utente, ma non sono capace.
Ciao a tutti.
24-02-2018,09:40 (Questo messaggio è stato modificato l'ultima volta il: 24-02-2018,09:41 da patel.)
per ottenere quello che vuoi occorre ricorrere ad una macro che gestisca l'evento contenuto modificato nella colonna B.
La macro è la seguente
Codice:
Sub eventocella(Target)
If NOT Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
sh = Target.getSpreadsheet()
range1 = sh.getCellRangeByName("B20:B9000")
range2 = range1.queryintersection(Target.rangeaddress())
If range2.RangeAddressesAsString = "" Then Exit Sub
ActiveCell = thisComponent.getCurrentSelection()
Sh.getCellByPosition(ActiveCell.celladdress.column - 1,ActiveCell.celladdress.row).value = now()
End Sub
per attivarla occorre cliccare col destro sul tab del foglio,Foglio Eventi,Contenuto modificato, selezionare la macro già inserita in un modulo.
Ti allego il file
Grazie tante Patel la macro fa al caso mio, è sufficiente anche così ma visto che l'appetito vien mangiando, non sarebbe possibile modificarla X far sì che l'ora venga scritta solo quando la cella nella colonna B passa da vuota a usata e non viceversa?
o magari non plus ultra solo quando la cella nella colonna B passa da vuota a contenere un valore all'interno di un certo Insieme; quindi un controllo su contenuto dei valori Cella Colonna B?
In della sostituzione della Macro che comunque funziona benissimo è possibile scrivere una semplice funzione definita dall'utente Richiamabile direttamente dall'interno della cella che esegua un non operare?
Mi spiego meglio con una suddetta funzione, siccome poi i nostri operatori devono modificare sia la colonna B che la colonna C, con la Formula ad esempio in A29 :
Sub eventocella(Target)
If NOT Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
sh = Target.getSpreadsheet()
range1 = sh.getCellRangeByName("B20:B9000")
range2 = range1.queryintersection(Target.rangeaddress())
If range2.RangeAddressesAsString = "" Then Exit Sub
ActiveCell = thisComponent.getCurrentSelection()
If Sh.getCellByPosition(ActiveCell.celladdress.column - 1,ActiveCell.celladdress.row).Formula = "" then
Sh.getCellByPosition(ActiveCell.celladdress.column - 1,ActiveCell.celladdress.row).value = now()
end if
End Sub
E' possibile creare una macro nella cella scelta per inibire il lavoro, ed associare a questa un pulsante, ed una macro per abilitare, anche questa con un pulsante associato.
Non sono un programmatore, ma mi diverto con excel e visualbasic.