- Codice: Seleziona tutto
Sub Ripristina()
Application.EnableEvents = True
End Sub
L'errore nella riga credo dipenda da
Environ
dellla riga Environ("UserName") Then
non riconosciuto da office 2002 e 2007
Prova a fare così
in un modulo inserisci questo codice:
- Codice: Seleziona tutto
Public Utente As String
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Sub test()
Dim lpBuff As String * 25
Dim ret As Long, Username As String
ret = GetUserName(lpBuff, 25)
Utente = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Sub
Poi sostituisci la macro nel Foglio1 con questa
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LogNum As Integer
CheckArea = "A2:C10" '<<< Area da tenere sotto controllo
Track = "Z1" '<<< Cella dove scrive data/Ora
LogNum = 300 '<< N° di blocchi che si conserveranno
'
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
Call test
Application.EnableEvents = False
If Range(Track).Offset(Range(Track).Value * 2 + 1) <> Utente Then
Range(Track).Value = (Range(Track).Value + 1) Mod LogNum
End If
Range(Track).Offset(Range(Track).Value * 2 + 1) = Utente
Range(Track).Offset(Range(Track).Value * 2 + 2) = Now()
Range(Track).Offset(Range(Track).Value * 2 + 3).Range("A1:A2").Clear
Application.EnableEvents = True
End Sub
Sub Ripristina()
Application.EnableEvents = True
End Sub
Ora dovrebbe funzionare anche con le tue versioni di office
Fai sapere
Ciao
P.s. per il test apri solo una cartella di lavoro completamente vuota