Regista orario apertura fogli



  • Regista orario apertura fogli
    di At data: 27/06/2011

    Salve, espongo di seguito il mio quesito, chiedendo se qualcuno gentilemente sa trovare una soluzione.
    all'interno di un file di excel ho inserito quattro fogli, tre di questi roma, milano, venezia, compongono il lavoro uno registra attraverso la routine che allego di seguito la data, l'orario e il progressivo del foglio quando viene aperto.
    sviluppando il file, ho applicato questa procedura ad un grafico, tutte le volte che verifico il grafico la routine, che allego, dovrebbe registrare la data, l'orario e il progressivo di apertura.
    il risultato invece è quello di iniziare con un nuovo progressivo nella colonna a del foglio registra, scomponendo anche la variabile j che nel msgbox non legge più correttamente nemmeno gli altri fogli che ho denominato con nomi di città roma, milano, venezia.
    se la routine del grafico viene attivata dal vbide con f8, oppure con f5 tutto funziona correttamente.
    conoscete un metodo per risolvere questo problema
     
    Private Sub Worksheet_Activate()
    Dim w As Date : Dim k As String : Dim t As Date
    Dim f As Integer : Dim j As Double
    Dim intervallo As Range
    Dim nomefoglio As String
    nomefoglio = "venezia"
    w = Now
    k = Format(w, "ddd, dd mmm yyyy")
    t = Format(Time, "Short Time")
    Foglio4.Range("A1").End(xlDown).Offset(1, 0).Formula = "=R[-1]C+1"
    Foglio4.Range("B1").End(xlDown).Offset(1, 0).Value = Foglio3.Name
    Foglio4.Range("C1").End(xlDown).Offset(1, 0).Value = k
    Foglio4.Range("D1").End(xlDown).Offset(1, 0).Value = t
    f = Format(Foglio4.Range("A1").End(xlDown).Value, "##")
    Set intervallo = Foglio4.Range("B2: B" & f + 1)
    j = Application.WorksheetFunction.CountIf(intervallo, nomefoglio)
    MsgBox "questa cartella è stata aperta " & Foglio4.Range("A1").End(xlDown).Value & " di cui " & Chr(13) & j _
    & " volte il foglio " & Foglio3.Name
    Set intervallo = Nothing
    End Sub
    
    
    Private Sub Chart_Activate()
    Dim w As Date : Dim k As String: Dim t As Date
    Dim f As Integer : Dim j As Double 
    Dim intervallo As Range: Dim nomefoglio As String
    nomefoglio = "grafo_roma"
    w = Now : k = Format(w, "ddd, dd mmm yyyy")
    t = Format(Time, "Short Time")
    Foglio4.Range("A1").End(xlDown).Offset(1, 0).Formula = "=R[-1]C+1"
    Foglio4.Range("B1").End(xlDown).Offset(1, 0).Value = Grafico1.Name
    Foglio4.Range("C1").End(xlDown).Offset(1, 0).Value = k
    Foglio4.Range("D1").End(xlDown).Offset(1, 0).Value = t
    f = Format(Foglio4.Range("A1").End(xlDown).Value, "##")
    Set intervallo = Foglio4.Range("B2: B" & f + 1)
    j = Application.WorksheetFunction.CountIf(intervallo, Grafico1.Name)
    MsgBox "questa cartella è stata aperta " & Foglio4.Range("A1").End(xlDown).Value & " di cui " & Chr(13) & j _
    & " volte il foglio " & Grafico1.Name
    Set intervallo = Nothing
    End sub