Anna Lea ha una cartella di lavoro di sola lettura che usa come modello per un rapporto giornaliero che crea. Il nome del file è piuttosto lungo e termina con 20507xx. Quando fa doppio clic sulla cartella di lavoro, si apre e mostra che è di sola lettura. Apporta le modifiche e quindi utilizza Salva con nome. Poiché Excel riconosce che il file è di sola lettura, suggerisce un nuovo nome file che consiste in quello vecchio con le parole “Copia di” come prefisso. Anna vuole eliminare la “Copia di” in modo che tutto ciò che deve fare è modificare la parte “xx” del nome del file per creare il rapporto del giorno.

La verbosità “Copia di” viene aggiunta automaticamente da Excel. Se si utilizza Salva con nome, non è possibile modificarlo senza utilizzare una macro per controllare il processo di salvataggio. La seguente macro, salvata come parte dell’oggetto ThisWorkbook, mostra come eseguire questa operazione.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _   As Boolean, Cancel As Boolean)

Dim sTemp As String     Dim sCheck As String     sCheck = "xx.xls"



If SaveAsUI Then         sTemp = ThisWorkbook.Name         If Right(sTemp, Len(sCheck)) = sCheck Then             sTemp = Left(sTemp, Len(sTemp) - Len(sCheck))

sTemp = sTemp & Format(Now, "dd") & ".xls"

sTemp = ThisWorkbook.Path & "/" & sTemp             ThisWorkbook.SaveAs Filename:=sTemp, _               FileFormat:=xlNormal             Cancel = True         End If     End If End Sub

La macro verifica innanzitutto se la finestra di dialogo Salva con nome sta per essere visualizzata. In caso affermativo, il nome della cartella di lavoro viene assegnato alla variabile sTemp. Questo nome viene controllato per vedere se gli ultimi sei caratteri sono “xx.xls” (dalla variabile sCheck). In tal caso, si presume che la cartella di lavoro sia quella in cui è necessario modificare il nome.

Prima i caratteri “xx.xls” (o qualunque cosa tu abbia assegnato a sCheck)

vengono rimossi dalla fine del nome della cartella di lavoro. Quindi la data odierna (due cifre, per il giorno del mese) viene aggiunta al nome del file, seguita dal suffisso “.xls”. Infine, la cartella di lavoro viene salvata utilizzando questo nome file di nuova costruzione. Il flag Annulla è impostato su True in modo che la finestra di dialogo Salva con nome non venga mai visualizzata.

Si noti che il nome non viene mai controllato per la dicitura “Copia di”. Il motivo è semplice: la dicitura non viene aggiunta all’inizio del nome del file finché non viene visualizzata la finestra di dialogo Salva con nome effettiva. Prima di quel punto (quando questo gestore di eventi viene eseguito) il nome della cartella di lavoro rimane invariato.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (3064) si applica a Microsoft Excel 97, 2000, 2002 e 2003.