Excel Forum Per condividere esperienze su Microsoft Excel

Come portare la selezione sulla data del giorno ?

  • Messaggi
  • OFFLINE
    sputnik_r
    Post: 45
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 25/05/2018 17:25
    Buona sera.

    All'apertura del file excel come posso fare per fare in modo che la selezione si porti automaticamente sulla cella che contiene la data del giorno ?

    Ho le date nella colonna B formattate così: "mercoledì-16-05-2018"



    [Modificato da sputnik_r 25/05/2018 17:25]
  • OFFLINE
    GiuseppeMN
    Post: 2.972
    Registrato il: 03/04/2013
    Utente Veteran
    Excel 2000 - 2013
    00 25/05/2018 18:43
    Buona sera, sputnik;
    normalmente io uso:

    Option Explicit
    
    Private Sub Workbook_Open()
    Dim Titolo As String, Messaggio As String, Default As String
    Dim DtX As Date
    Dim NRc As Integer
        
        Sheets("Calendario").Select
            Titolo = "Selezione Data"
            Messaggio = "Inserisci Data (gg/mm/aaaa) da selezionare"
            Default = Date
        DtX = Application.InputBox(Messaggio, Titolo, Default)
            NRc = 4
        Do While Cells(NRc, 2) <> ""
            If Cells(NRc, 2).Value = DtX Then
                Cells(NRc, 2).Select
                    Exit Do
            End If
                NRc = NRc + 1
        Loop
    End Sub
    

    Nell'ImputBox la Data va inserita come gg/mm/aaaa; non so se questo possa crearti problemi.




    A disposizione.

    Buona serata.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    dodo47
    Post: 1.863
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 25/05/2018 18:49
    Ciao
    in alternativa un codice da inserire sull'evento open del tuo documento.

    Nome foglio=Foglio1
    date a partire da B2

    Private Sub Workbook_Open()
    Worksheets("Foglio1").Select
    ur = Range("B" & Rows.Count).End(xlUp).Row
    With Range("B2:B" & ur)
        Set c = .Find(Date, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            Application.Goto reference:=Worksheets("Foglio1").Range(c.Address), scroll:=True
            Exit Sub
        Else
            mcel = Application.WorksheetFunction.Match(CDbl(Date), Range("B2:B" & ur), 1)
            Application.Goto reference:=Worksheets("Foglio1").Range("B" & mcel + 1), scroll:=True
        End If
    End With
    End Sub


    Saluti




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    sputnik_r
    Post: 45
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 25/05/2018 19:04
    Buona sera Domenico e Giuseppe
    Grazie mille appena riesco li provo entrambi.
  • OFFLINE
    sputnik_r
    Post: 46
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 25/05/2018 19:41
    Sbaglio qualcosa...
    non so dove inserire il codice evidentemente, non me ne funziona nessuna delle 2
  • OFFLINE
    GiuseppeMN
    Post: 2.973
    Registrato il: 03/04/2013
    Utente Veteran
    Excel 2000 - 2013
    00 25/05/2018 21:55
    Buona sera, sputnik;
    leggo solo ora.

    Il Codice VBA va inserito in "Progetto - VBAProject"

    Quindi:
    -    ALT + F11  (apre VBA)
    -    Selezioni il NomeFile (nell'immagine in allegato (_Seleziona Data all'apertura.xlsm) ma tu selezionerai il NomeFile del tuo File)
    -    Selezioni e apri "Questa_cartella_di_lavoro"
    -    Copia uno dei due Codici VBA proposti
    -    Salvi il File

    Quando aprirai il File, se hai salvato il mio Codice VBA proposto in Risposta #2 si aprirà ImputBox con la Data del giorno come Default; confermando verrà selezionata la Cella che contiene la data odierna nel calendario in Colonna "B", mentre, modificando la Data proposta verrà selezionata la Cella che contiene la Data scelta nel calendario in Colonna "B".



    A disposizione.

    Buona serata.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    rollis13
    Post: 692
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 25/05/2018 23:18
    Per essere più precisi, esattamente come hai ottenuto quella particolare formattazione della data ? hai applicato alla data una formattazione personalizzata tipo ' gggg-gg-mm-aaaa ' o il contenuto della cella è testo puro ?
    [Modificato da rollis13 25/05/2018 23:21]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    sputnik_r
    Post: 47
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 26/05/2018 07:56
    Re:
    GiuseppeMN, 25/05/2018 21.55:

    Buona sera, sputnik;
    leggo solo ora.

    Il Codice VBA va inserito in "Progetto - VBAProject"

    Quindi:
    -    ALT + F11  (apre VBA)
    -    Selezioni il NomeFile (nell'immagine in allegato (_Seleziona Data all'apertura.xlsm) ma tu selezionerai il NomeFile del tuo File)
    -    Selezioni e apri "Questa_cartella_di_lavoro"
    -    Copia uno dei due Codici VBA proposti
    -    Salvi il File

    Quando aprirai il File, se hai salvato il mio Codice VBA proposto in Risposta #2 si aprirà ImputBox con la Data del giorno come Default; confermando verrà selezionata la Cella che contiene la data odierna nel calendario in Colonna "B", mentre, modificando la Data proposta verrà selezionata la Cella che contiene la Data scelta nel calendario in Colonna "B".



    A disposizione.

    Buona serata.

    Giuseppe




    Ho capito, funziona benissimo il problema era sula protezione del foglio. Mi va bene il tuo codice però purtroppo dovrebbe funzionare lasciando protetto il foglio altrimenti lo manomettono involontariamente visto che usiamo in tanti...
  • OFFLINE
    sputnik_r
    Post: 48
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 26/05/2018 07:56
    Re:
    rollis13, 25/05/2018 23.18:

    Per essere più precisi, esattamente come hai ottenuto quella particolare formattazione della data ? hai applicato alla data una formattazione personalizzata tipo ' gggg-gg-mm-aaaa ' o il contenuto della cella è testo puro ?




    Si personalizzandola gggg-gg-mm-aaaa
  • OFFLINE
    GiuseppeMN
    Post: 2.974
    Registrato il: 03/04/2013
    Utente Veteran
    Excel 2000 - 2013
    00 26/05/2018 08:48
    Buona giornata, sputnik;
    credo potresti provare con:

    Option Explicit
    
    Private Sub Workbook_Open()
    Dim Titolo As String, Messaggio As String, Default As String
    Dim DtX As Date
    Dim NRc As Integer
        
        Sheets("Calendario").Select
            Titolo = "Selezione Data"
            Messaggio = "Inserisci Data (gg/mm/aaaa) da selezionare"
            Default = Date
        DtX = Application.InputBox(Messaggio, Titolo, Default)
            NRc = 4
        Do While Cells(NRc, 2) <> ""
            If Cells(NRc, 2).Value = DtX Then
                ActiveWorkbook.Unprotect Password:="TuaPassword"
                    Cells(NRc, 2).Select
                        Exit Do
            End If
                NRc = NRc + 1
        Loop
                ActiveWorkbook.Protect Password:="TuaPassword"
    End Sub
    



    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    sputnik_r
    Post: 49
    Registrato il: 03/03/2014
    Città: TORINO
    Età: 54
    Utente Junior
    2007
    00 26/05/2018 17:11
    Re:
    GiuseppeMN, 26/05/2018 08.48:

    Buona giornata, sputnik;
    credo potresti provare con:

    Option Explicit
    
    Private Sub Workbook_Open()
    Dim Titolo As String, Messaggio As String, Default As String
    Dim DtX As Date
    Dim NRc As Integer
        
        Sheets("Calendario").Select
            Titolo = "Selezione Data"
            Messaggio = "Inserisci Data (gg/mm/aaaa) da selezionare"
            Default = Date
        DtX = Application.InputBox(Messaggio, Titolo, Default)
            NRc = 4
        Do While Cells(NRc, 2) <> ""
            If Cells(NRc, 2).Value = DtX Then
                ActiveWorkbook.Unprotect Password:="TuaPassword"
                    Cells(NRc, 2).Select
                        Exit Do
            End If
                NRc = NRc + 1
        Loop
                ActiveWorkbook.Protect Password:="TuaPassword"
    End Sub
    



    A disposizione.

    Buon fine settimana.

    Giuseppe



    Va alla grande, meglio di quel che cercavo. Grazie, buona serata.