Impedire il comando "Salva con nome" in Excel

di Agnese Bascià

scritto il

Se vogliamo impedire a collaboratori o utenti dello stesso foglio di Microsoft Excel 2007 di salvare svariate copie della stessa cartella di lavoro, possiamo operare sul codice Visual Basic e impedire il comando “Salva con nome”.

Con una piccola stringa di codice, imposteremo un messaggio che informerà l’utente della cartella Excel che non può procedere a salvare il file con un nome diverso da quello esistente, ma al limite può scegliere di salvare le eventuali modifiche apportate direttamente sullo stesso file.

Questa operazione si rende necessaria per impedire il pullulare di diverse versioni di un file, ognuna delle quali salvate magari da persone diverse su PC differenti.

Apriamo una cartella Excel, salviamola con un nome e con proprietà “Foglio di Excel con attivazione di macro”, andiamo nella tab “Sviluppo” e clicchiamo su “Visual Basic”; nella finestra VB selezioniamo dall’elenco dei file a sinistra “ThisWorkbook” e facciamo doppio clic su di esso.

Nella finestra che si apre, selezioniamo dalla casella a discesa di sinistra “Workbook” e da quella a destra “BeforeSave”, quindi incolliamo fra:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim lReply As Long

e

End Sub

il seguente codice:

If SaveAsUI = True Then

lReply = MsgBox("Non sei autorizzato a salvare con altro nome.Vuoi salvare con lo stesso nome?", vbQuestion + vbOKCancel)

Cancel = (lReply = vbCancel)

If Cancel = False Then Me.Save

Cancel = True

End If

Salviamo il codice e usciamo da VB. A questo punto, provando a usare il comando “Salva con nome” uscirà una finestra di pop-up che recita: “Non sei autorizzato a salvare con altro nome. Vuoi salvare con lo stesso nome?”; è possibile cliccare su “Ok” per salvare con lo stesso nome o su “Annulla” per uscire dai salvataggi e continuare a visualizzare il file o a modificarlo.