Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Una volta effettuato l'accesso al file di riferimento è presente una maschera di inserimento dei dati.
Automaticamente i dati inseriti in questa maschera popolano un foglio di lavoro denominato DB.
L'obiettivo ora è fare in modo che all'interno del DB ci sia una colonna in cui andrà a comparire il nome della persona che ha effettuato l'accesso con le credenziali sopra citate. Bisogna scongiurare la possibilità che l'Utente possa inserire un nome diverso dal suo. In questo modo avendo effettuato l'accesso con le credenziali non può modificare i dati, o comunque è tracciato che è stato lui.
Grazie per la disponibilità anticipatamente
La strada più semplice se hai già la maschera di inserimento dati.
Aggiungi due TextBox e un CommandButton in alto nella UserForm e metti nell'evento Initialize della UserForm la proprietà Hight settata con un valore che visualizzi solo quella parte di UserForm, ad esempio:
Private Sub UserForm_Initialize()
Me.Height = 127.5
End Sub
Intercetti quando l'utente preme il CommandButton per il log, dopo aver inserito Nome utente e password mostrando, se sono corrette, il resto della UserForm:
Private Sub CommandButton1_Click()
Dim bln As Boolean
Dim lRiga As Long
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("DataBase")
Select Case Me.TextBox1.Text
Case Is = "Pippo"
If Me.TextBox2.Text = "abc" Then
bln = True
End If
Case Is = "Pluto"
If Me.TextBox2.Text = "def" Then
bln = True
End If
Case Is = "Paperino"
If Me.TextBox2.Text = "ghi" Then
bln = True
End If
Case Else
bln = False
End Select
If bln = True Then
With sh
Me.Height = 600
End With
End If
End Sub
A questo punto, quando l'utente confermerà(immagino ci sia un altro pulsante sulla UserForm) l'immissione dei dati nella tabella, copierai il nome della TextBox che contiene il Nome utente nell'apposito campo e, volendo fare le cose per benino, data e ora immissione in altre due colonne. Qui trovi il file che ho utilizzato per l'esempio:http://www.maurogsc.eu/esempiforum11/userformconlog.zip .
Per la *non modificabilità dei dati nella tabella* è sufficiente che tu protegga il foglio e poi che tolga la proteziione da codice prima di inserire i dati e la rimetta una volta inseriti.
Ricorda poi di metere in sicurezza, per quanto possibile, il codice, mettendo una password di protezione.
NOTA.
Ti ricordo che la sicurezza ed Excel sono due cose molto lontane fra loro. C'è sempre modo di riuscire ad eludere la sicurezza di Excel e del suo vb.