Leggendo alcune domande e argomenti in relazione all'inserimento date nelle celle mi sono imbattuto in questo "topic"
L' inserimento delle date nelle celle (di MecFala pubblicato in data 12 gennaio 2016)
dove veniva lamentato che il comando rapido Alt Gr+a per l'inserimento della data odierna non era presente in tutte le versioni di Excel.
In effetti anche dal mio computer se digito Alt Gr a non c'è l'inserimento della data attuale.
Ho pensato allora che la cosa potesse essere replicata tramite application.OnKey e una routine che simuli il comportamento dell'inserimento di una data in una cella e con inserimento della data attuale del sistema.
Queste le routine:
Sub Abilita_AltGra() 'inserimento data odierna
'<--- abilita la combinazione dei tasti Alt+Ctrl+a dove Alt+Ctrl corrisponde a Alt Gr --->
Application.OnKey "%^a", "DataOdierna"
End Sub
Sub Disabilita_AltGra()
'<--- disabilita la combinazione dei tasti Alt+Ctrl+a dove Alt+Ctrl corrisponde a Alt Gr --->
Application.OnKey "%^a"
End Sub
Sub DataOdierna()
Dim ColWidth As Double
On Error GoTo Esci
Application.ScreenUpdating = False
With ActiveCell
ColWidth = .ColumnWidth
.Value = Date
.Columns.AutoFit
If ColWidth > .ColumnWidth Then .ColumnWidth = ColWidth
End With
Esci:
Application.ScreenUpdating = True
End Sub
La routine Abilita_AltGra potrebbe essere caricata tramite l'evento Workbook_Open della cartella PERSONAL nel caso si volesse che il comando sia disponibile per qualsiasi cartella di lavoro o, in alternativa, solo nella cartella spefica con inserimento della
stessa negli eventi Workbook_Open e Workbook_Activate e inserimento della routine Disabilita_AltGra negli eventi Workbook_BeforeClose e Workbook_Deactivate della specifica cartella di lavoro.
Per evitare il messaggio di errore nel caso in cui l'applicazione Excel sia aperta ma non siano presenti fogli visibili ho inserito, per semplicità, il comando On Error GoTo Esci.
Ma sicuramente ci potrebbe essere il modo di "intercettare" il fatto che non siano presenti cartelle di lavoro visibili prima di "causare" l'errore.
Sono ben accetti consigli ed eventuali implementazioni :-)
Edit: ho apportato una piccola correzione perché mi sono accorto che avevo lasciato il comando screenupdating = true prima della riga Esci: e non dopo.