Macro pour le nettoyage de toutes les feuilles d'un classeur (VBA - Excel 2010)

1

J'ai un fichier macro avec 5 feuilles et j'aimerais ajouter un bouton de commande VBA dans le même fichier pour nettoyer tout le contenu du classeur en un seul clic. Est-ce que quelqu'un sait comment faire en utilisant VBA sur Excel 2010?

NT.
la source
Qu'entendez-vous par contenu propre du classeur?
CLockeWork
Supprimez toutes les valeurs (le contenu) et le formatage de toutes les feuilles du classeur
NT.

Réponses:

4

Nettoyage de toutes les feuilles d'un classeur:

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

Edit1: voir la source

Les supprimer au lieu de les nettoyer:

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
remue-marais
la source
Thsnks fonctionne à merveille. J'ai également ajouté "Selection.ClearFormats" pour effacer également le formatage de toutes les feuilles ...
NT.
0

Simple comme ci-dessous. Remplacez Sheet1, Sheet2 par les noms de vos feuilles et ajoutez autant de ces 3 lignes que nécessaire. Je suppose que vous savez comment créer un lien dans Excel et créer un lien vers une macro.

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

    Sheets("Sheet2").Select
    Cells.Select
    Selection.ClearContents
End Sub
Brian Folan
la source
merci mais la précédente est plus pratique, il n'y a pas besoin de configurer pour chaque feuille.
NT.