Attribute VB_Name = "Modulo_EliminaFogli" ' Il nome del corrente modulo VBA (Visual Basic for Application) ' deve iniziare con i caratteri "Modulo" ed avere estensione ".bas". ' Per importarlo dentro un Excel 2007 o 2010 ".xlsm" (con macro attivate), esegui ' Sviluppo, Visual Basic, File, Importa file... ' e, infine, scegli il file corrente dalla finestra di importazione. Sub EliminaFogli() 'La presente Subroutine elimina tutti i fogli della cartella 'ad eccezione del foglio che chiama la macro corrente. Dim FoglioChiamante As Worksheet Dim Foglio As Worksheet On Error GoTo RigaErrore 'Annota il nome del foglio di avvio. Set FoglioChiamante = Worksheets(ActiveSheet.Name) 'True: Aggiorna il video. 'False: Non aggiorna il video per non rallentare l'elaborazione. Application.ScreenUpdating = True 'Per ogni foglio della cartella chiamante. For Each Foglio In ActiveWorkbook.Worksheets 'Se il foglio corrente è diverso dal foglio chiamante. If Foglio.Name <> FoglioChiamante.Name Then 'Sceglie il foglio. Sheets(Foglio.Name).Select 'Spegne la messaggistica. Application.DisplayAlerts = False 'Cancella il foglio corrente. ActiveWindow.SelectedSheets.Delete 'Riaccende la messaggistica. Application.DisplayAlerts = True 'Se il foglio corrente è diverso dal foglio chiamante. End If 'Per ogni foglio della cartella chiamante. Next 'GESTIONE CHIUSURA ED ERRORI. RigaChiusura: With Application .CutCopyMode = False .ScreenUpdating = True End With Exit Sub RigaErrore: MsgBox Err.Number & vbNewLine & Err.Description Resume RigaChiusura End Sub Sub ElencaFogli() Dim Foglio As Worksheet For Each Foglio In ActiveWorkbook.Worksheets MsgBox Foglio.Name Next End Sub