21-5-73
15-02-2011, 23:38
Ciao
Per un semplice esercizio scolastico (faccio le serali niente di che :) ) avrei bisogno di organizzare un foglio di Excel, che si occupa di fare dei calcoli, in modo che l' ipotetico utente che lo andasse ad utilizare non possa in alcun modo modificarlo. Potrei fare tutto bloccando il foglio con password, ma sarebbe banale ed esteticamente poco valido. Per cui mi sono documentato un pò e ho trovato una soluzione accettabile andando a nascondere tutta l' interfaccia di Excel.
Usando VBA inserisco nell' evento Workbook_Open() questa porzione di codice:
Workbooks.Application.CommandBars.ActiveMenuBar.Enabled = False
Dim nome_menu
For Each Menu In Application.CommandBars
nome_menu = Menu.Name
Menu.Enabled = False
Next
Workbooks.Application.DisplayFormulaBar = False
Workbooks.Application.DisplayFullScreen = True
ActiveWindow.DisplayWorkbookTabs = False
E poi per evitare che tutti i file di Excel vengano aperti senza interfaccia, nell' evento Workbook_BeforeClose inserisco quest' altra porzione di codice:
Workbooks.Application.CommandBars.ActiveMenuBar.Enabled = True
For Each Menu In Application.CommandBars
Menu.Enabled = True
Next
Workbooks.Application.DisplayFullScreen = False
Workbooks.Application.DisplayFormulaBar = True
Ora funziona tutto perfettamente come dovrebbe, ma c'è un particolare che vorrei migliorare. Mi rimangono visibili la colonna coi numeri di riga e la riga con le lettere di colonna, mi sapreste indicare come toglierle? Si dovrebbe trattare di mettere a false prima e true dopo il nome di quelle 2 componenti o mi sbaglio?
Per un semplice esercizio scolastico (faccio le serali niente di che :) ) avrei bisogno di organizzare un foglio di Excel, che si occupa di fare dei calcoli, in modo che l' ipotetico utente che lo andasse ad utilizare non possa in alcun modo modificarlo. Potrei fare tutto bloccando il foglio con password, ma sarebbe banale ed esteticamente poco valido. Per cui mi sono documentato un pò e ho trovato una soluzione accettabile andando a nascondere tutta l' interfaccia di Excel.
Usando VBA inserisco nell' evento Workbook_Open() questa porzione di codice:
Workbooks.Application.CommandBars.ActiveMenuBar.Enabled = False
Dim nome_menu
For Each Menu In Application.CommandBars
nome_menu = Menu.Name
Menu.Enabled = False
Next
Workbooks.Application.DisplayFormulaBar = False
Workbooks.Application.DisplayFullScreen = True
ActiveWindow.DisplayWorkbookTabs = False
E poi per evitare che tutti i file di Excel vengano aperti senza interfaccia, nell' evento Workbook_BeforeClose inserisco quest' altra porzione di codice:
Workbooks.Application.CommandBars.ActiveMenuBar.Enabled = True
For Each Menu In Application.CommandBars
Menu.Enabled = True
Next
Workbooks.Application.DisplayFullScreen = False
Workbooks.Application.DisplayFormulaBar = True
Ora funziona tutto perfettamente come dovrebbe, ma c'è un particolare che vorrei migliorare. Mi rimangono visibili la colonna coi numeri di riga e la riga con le lettere di colonna, mi sapreste indicare come toglierle? Si dovrebbe trattare di mettere a false prima e true dopo il nome di quelle 2 componenti o mi sbaglio?