Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer toutes les feuilles sauf la première

Toug

XLDnaute Junior
Bonjour,
Pour initialiser ma macro je voudrais supprimer toutes les feuilles sauf la première qui me sert de base.
J'ai écrit un code, mais ça ne semble pas marcher, je ne comprend pas pourquoi:
Code:
Application.DisplayAlerts = False
Dim wSheets As Worksheet
For i = 2 To 10

    On Error Resume Next
    Set wSheet = Sheets(i)
    If wSheets Is Nothing Then
        MsgBox "Nexistepas" & i
    Else
        Sheets(i).Delete
    End If
Next i

End Sub
Avec ce code, j'ai l'impression que les feuilles n'existent pas, dois y avoir une mauvaise syntaxe quelque part.

Merci d'avance.
 

job75

XLDnaute Barbatruc
Re : Supprimer toutes les feuilles sauf la première

Bonjour DoubleZero

(...) une subtilité qui, malheureusement , m'échappe !

Pour mieux comprendre exécute successivement ces 2 macros :

Code:
Sub Macro1()
Application.DisplayAlerts = False
MsgBox "DisplayAlerts => " & Application.DisplayAlerts
End Sub

Sub Macro2()
MsgBox "DisplayAlerts => " & Application.DisplayAlerts
End Sub

Avec Application.ScreenUpdating c'est pareil, mais attention, quand on est sur des UserForms il faut parfois rafraîchir l'écran à la fin de la macro.

Enfin avec Application.EnableEvents = False il faut toujours remettre à True avant la fin de la macro.

A+
 

tototiti2008

XLDnaute Barbatruc
Re : Supprimer toutes les feuilles sauf la première

Bonjour à tous

Les remarques de job sont tout à fait vraies, mais comme j'éteins la lumière en sortant des toilettes, je préfère systématiquement réactiver ce que j'ai désactivé...
Un choix personnel que je n'impose à personne
 

job75

XLDnaute Barbatruc
Re : Supprimer toutes les feuilles sauf la première

Bonjour tototiti

(...) j'éteins la lumière en sortant des toilettes

Bill a prévu des toilettes dont la lumière s'éteint automatiquement quand on sort

Une précision encore sur les macros d'un UserForm.

Quand il est ouvert en mode normal (modal), DisplayAlerts ou ScreenUpdating ne passent pas automatiquement à True tant que l'UserForm est ouvert.

En effet la macro où se trouve UserForm1.Show ne se termine qu'à la fermeture de l'UserForm.

A+
 

tototiti2008

XLDnaute Barbatruc
Re : Supprimer toutes les feuilles sauf la première

Re,

Bill a prévu des toilettes dont la lumière s'éteint automatiquement quand on sort

Me méfie de ces toilettes avec les lumières automatiques, j'ai connu des toilettes (de vraies, ce n'est pas une image) où si on ne remuait pas assez en étant sur le trône la lumière s'éteignait automatiquement
Mais encore une fois
Un choix personnel que je n'impose à personne
 

DoubleZero

XLDnaute Barbatruc
Re : Supprimer toutes les feuilles sauf la première

Bonjour, le Fil, le Forum,

Le test proposé par job75 (post #17) ne me permet encore pas de comprendre la subtilité .

Je garderai donc ma coiffe d’âne(sse) .

Quoi qu’il en soit, je vous remercie, job75 et tototiti2008 , pour vos réponses respectives.

A bientôt .
 

tototiti2008

XLDnaute Barbatruc
Re : Supprimer toutes les feuilles sauf la première

Re,

Le test proposé par job au message #17 est de coller le code des 2 Macros (Macro1 et Macro2) dans un module
Exécuter Macro1
On voit que Displayalerts a été désactivé
Exécuter Macro2
On voit que Displayalerts a été automatiquement réactivé à la fin de Macro1
 

Toug

XLDnaute Junior
Re : Supprimer toutes les feuilles sauf la première


Merci j'ai utilisé ton code, ça fonctionne nickel.
 

Discussions similaires

Réponses
7
Affichages
436
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…