proteggere tanti fogli excel
Hai un problema con Excel? 
proteggere tanti fogli excel
di Vannisca86 (utente non iscritto) data: 14/01/2014 11:30:29
SAlve a tutti, ho un problema
In pratica ho un file excel con all'interno tanti fogli,ho necessità che ogni utente lavori sul proprio foglio senza poter vedere altri fogli ! ad esempio ho il foglio "contabilità" dove ci può lavorare solo un utente,un altro utente che accede allo stesso file non deve poter visualizzare codesto foglio se non tramite password. come posso fare?
di Grograman data: 14/01/2014 11:53:01
Così su due piedi e da adattare, un controllo sul nome utente excel:
Option Explicit
Private Sub Workbook_Open()
Dim sUtente As String
Dim ws As Worksheet
Application.ScreenUpdating = False
'rendiamoli tutti visibili
For Each ws In ThisWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
Select Case Application.UserName
Case Is = "Tizio"
sUtente = "Foglio1" 'nome foglio che deve vedere Tizio
Case Is = "Caio"
sUtente = "Foglio2" 'nome foglio che deve vedere Caio
Case Is = "Sempronio"
sUtente = "Foglio3" 'nome foglio che deve vedere Sempronio
Case Else
' ThisWorkbook.Close vbNo 'togliere commento per far chiudere il file
End Select
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> sUtente Then ws.Visible = xlSheetVeryHidden
Next ws
Application.ScreenUpdating = True
End Sub
|
di Vannisca86 (utente non iscritto) data: 14/01/2014 12:16:44
questo lo faccio inserendo un modulo in visual basic giusto ??
di mb data: 14/01/2014 14:09:19
ciao a tutti
una curiosità mia come sempre, molto interessante come soluzione quella di grogrman, ma :
1 se attivo Vba e conosco lo user del pc cambio impostazioni e quindi posso vedere anche il foglio di un'altro ( o mi sbaglio )
2 stabilito che tizio caio e sempronio inseriscano i dati nei vari fogli dovrò poi generarmi un altro comando ogni volta per poter vedere tutti i fogli compilati o faccio una modifica alla sub in cui con lo user MB posso visualizare tutti i fogli ??
Grazie a tutti per l'eventuale chiarimento
di Grograman (utente non iscritto) data: 14/01/2014 14:34:43
Ciao emmebi!
Sì ad entrambe le domande ;)
Per la prima ti assicuro che molti utenti non sanno come fare copia e incolla, figuriamoci cambiare il nome utente!
Case is "MB"
For Each ws In ThisWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
Case Else |
di mb data: 14/01/2014 15:18:11
ciao Grograman
grazie per le risposte
buon pomeriggio alla prossima
Errore
di Vannisca86 (utente non iscritto) data: 15/01/2014 17:45:18
Mi restituisce all'apertura del file excel il seguente errore :
Errore di run-time '1004':
Metodo 'Visible dell'oggetto'_ +Worksheet' non riuscito
e poi nell'editor di Visual basic mi evidenzia in giallo questa stringa :
If ws.Name <> sUtente Then ws.Visible = xlSheetVeryHidden |
di marinoernestoch data: 15/01/2014 18:15:43
Ho provato la routine seguendo passo passo (F8). L'errore lo dà se nessun foglio resta visibile; se invece almeno un foglio è visibile funziona.
..
di Vannisca86 (utente non iscritto) data: 15/01/2014 18:29:18
E quindi cosa dovrei fare? nn ho capito tanto bene
di marinoernestoch (utente non iscritto) data: 15/01/2014 18:58:34
devi verificare che almeno una condizione CASE sia soddisfatta. Oppure inserire un foglio visibile a tutti ed inserire nel loop finale l'eccezione
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> sUtente and ws.name <> "foglio visibile a tutti " Then
ws.Visible = xlSheetVeryHidden
End If |
conflitti
di Vannisca86 (utente non iscritto) data: 29/01/2014 17:09:38
SAlve, ho da fare una domanda, ma creando questo file e ammesso che tutti quanti lavorano sullo stesso file insieme nelllo stesso tempo, si creano conflitti ???? c'è un modo per evitare questi conflitti??
Vuoi Approfondire?