Macro para limpeza de todas as folhas em uma pasta de trabalho (VBA - Excel 2010)

1

Eu tenho um arquivo de macro com 5 folhas e gostaria de adicionar um botão de comando VBA no mesmo arquivo para limpar todo o conteúdo da pasta de trabalho com um único clique. Alguém sabe como fazê-lo usando o VBA no Excel 2010?

    
por NT. 27.11.2014 / 11:00

2 respostas

4

Colocando todas as folhas em uma pasta de trabalho:

Sub ClearAll()

    Set wbook = ActiveWorkbook

    For Each sht In wbook.Worksheets
       sht.Activate
       sht.Cells.Select
       Selection.ClearContents
       Selection.ClearFormats ' edit: clear formats too
       sht.Cells(1, 1).Select ' edit: select the first cell to cancel selection of the whole sheet
    Next sht


End Sub

Editar1: veja a fonte

Excluindo-os em vez de limpar:

Sub DeleteAll()

    bAlerts = Application.DisplayAlerts
    Application.DisplayAlerts = False

    Set wbook = ActiveWorkbook

    wbook.Sheets(1).Activate

    For Each sht In wbook.Worksheets
        If sht.Name = wbook.ActiveSheet.Name Then ' we don't delete the active sheet but just its conntet
            sht.Cells.Select
            Selection.ClearContents
            Selection.ClearFormats
            sht.Cells(1, 1).Select
        Else
            sht.Activate
            ActiveWindow.SelectedSheets.delete
            wbook.Sheets(1).Activate
        End If
    Next sht

    wbook.ActiveSheet.Name = "Sheet1" ' we rename the last remaining sheet to the default name

    Application.DisplayAlerts = bAlerts

End Sub
    
por 27.11.2014 / 14:55
0

Simples como abaixo. Altere Sheet1, Sheet2 para os nomes de suas Sheets e adicione quantas dessas 3 linhas forem necessárias. Eu suponho que você sabe como criar um link no Excel e link para uma Macro.

Sub ClearSheets()
    Sheets("Sheet1").Select
    Cells.Select
    Selection.ClearContents

    Sheets("Sheet2").Select
    Cells.Select
    Selection.ClearContents
End Sub
    
por 27.11.2014 / 13:38