Ciao Raffenna
quanto indicato da Pietrol è una maniera veloce e senza macro per inserire la data nella cella attiva e ha un vantaggio rispetto a qualsiasi macro che, in quanto tale, ripete l'operazione ogni volta che viene attivata e non è "controllabile" se l'attivazione viene fatta in automatico all'apertura del foglio (escluderei pulsanti di comando per evitare dimenticanze di attivazione degli stessi).
Nel tuo quesito non specifichi se hai un elenco di utenze e quale utilizzo fai del foglio, nel senso oggi (io come utente) apro il foglio inserisco la data di oggi, domani cosa faccio? Apro lo stesso foglio oppure ne apro un altro?
Io ho immaginato un elenco di utenti che si ripetono più volte (nella colonna A da A2 in poi) e in B2:Bx la data da inserire ad ogni apertura del file di excel quindi ho creato questa macro
- Codice: Seleziona tutto
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
Sub DataUtente()
Dim utente As String
Dim abc As String
Dim sBuffer As String
Dim lSize As Long
sBuffer = Space(255)
lSize = Len(sBuffer)
Call GetUserName(sBuffer, lSize)
utente = UCase(Left(Trim(sBuffer), 80))
colu = 0
Dim Ut As String
Do
colu = colu + 1
If Mid(utente, colu, 1) = Chr(0) Then Exit Do
Ut = Ut & Mid(utente, colu, 1)
Loop
utente = Trim(Ut)
URE = Worksheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
For RU = 1 To URE
If Worksheets("Foglio1").Cells(RU, 1).Value = utente Then
If Worksheets("Foglio1").Cells(RU, 2).Value = "" Then
Worksheets("Foglio1").Cells(RU, 2).Value = Date
GoTo esci
End If
End If
Next RU
esci:
End Sub
per attivarala ho pensato fosse comodo farlo attraverso l'apertura del file con il comando su Open in ThisWorkbook
- Codice: Seleziona tutto
Private Sub Workbook_Open()
Call DataUtente
End Sub
"Legge" l'utente del sistema operativo,
controlla che corrisponda ad una voce dell'elenco
alla prima corrispondenza controlla che la cella Bx (a fianco del nome) sia vuota e in questo caso inserisce la data del Pc.
Alla successiva riapertura del file, la macro provvederà a scrivere la data alla seconda corrispondenza (la prima non essendo vuota non verrà sovrascritta)
Ho pubblicato questa macro perché penso possa essere utile anche ad altri utenti più che per la tua esigenza effettiva.
Ciao