Abilitare Alt Gr a per inserimento data odierna

Anonimo
2016-07-10T08:49:57+00:00

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.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

9 risposte

Ordina per: Più utili
  1. Anonimo
    2016-07-10T11:33:58+00:00

    Fratello, la mia era una risposta generica, e indirizzata a chi ha iniziato la Discussione.

    Molto spesso non si considera che a volte si lavora all'interno di *reti* dove il gestore IT se sente che vuoi abilitare il vba di Office comincia a guardarti come se volesse ucciderti... ;-)

    Un bel foglietto con scritto: Prova CTRL+; e se non funziona CTRL+a è la soluzione migliore.... ;-)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-07-10T11:13:00+00:00

    Ciao Mauro,

    Mi sfugge il perché utilizzare il vba per una cosa che, diversi per versioni, ci sono comunque i relativi tasti di scelta rapida.... ;-)

    Il vb dovrebbe essere utilizzato per automatizzare le cose che Excel da solo non fa.

    E lo scrive uno che con il vb.... ;-)

    Non faccio, e io non farei, uso di VBA per inserire la data, ma, da l'altra parte, io non ho alcun problema con i tasti di scelta rapida.

    Il mio codice originale è stato pubblicato in risposta al suggerimento che i tasti di selezione rapida prescritti non funzionavano sotto Excel 2016,  che io non uso. Noto, tuttavia, che diversi utenti hanno indicato che il problema segnalato è stato resolto successivamente da aggiornamenti di Excel.

    La mia risposta a Casanamer era intesa solo ad indicare che l'approccio OnKey fosse stato esplorato in precedenza.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-07-10T11:03:47+00:00

    Per non dover inseguire le diverse versioni :-)

    Ad es. da me non funziona Alt Gr + a.

    Lo stesso accadeva all'untente MecLaFa che chiedeva come poter sopperire alla cosa.

    Insomma un modo per, come in teoria dovrebbe essere, rendere tutto standard a prescindere dalle versioni di office o di windows utilizzate.

    Lo so che non invento l'acqua calda ma d'altra parte anche tu hai lamentato in quello stesso post:

    > Quello dei tasti di scelta rapida è un problema che si trascina da diverse versioni, almeno nella localizzazione

    > italiana... :-(

    E se è un problema perché non risolverlo con il vb? ;-)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-07-10T10:47:41+00:00

    Mi sfugge il perché utilizzare il vba per una cosa che, diversi per versioni, ci sono comunque i relativi tasti di scelta rapida.... ;-)

    Il vb dovrebbe essere utilizzato per automatizzare le cose che Excel da solo non fa.

    E lo scrive uno che con il vb.... ;-)

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2016-07-10T10:04:13+00:00

    Ciao Casanmaner,

    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.

     A questo proposito vedi anche:

    http://answers.microsoft.com/it-it/office/forum/office_2013_release-excel/shortcut-in-excel-data-odierna/65413029-a515-4784-907f-6a1a68c9db19

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento