En plein dans une macro, je peine encore sur des détails à la c..
Si quelqu'un peux jeter un coup d'oeil et a 5 minutes pour me répondre, je vous remercie d'avance.
mon probleme :
J'aimerais supprimer plusieurs feuilles dan mon classeur au travers d'une macro. donc j'ai créer une macro (avec mes pauvres connaissances en vba et ceux que j'ai pu trouver sur le forum)qui fonctionne mais qui me parait assez lourde et limitée. Voici le code :
Sub DetruitFeuille_Sauf()
Dim Feuille As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
For Each Feuille In Worksheets
If (Feuille.Name <> "Entités") Then
If (Feuille.Name <> "Recap1") Then
If (Feuille.Name <> "Sinistres Cbt") Then
If (Feuille.Name <> "Parametrage") Then
If (Feuille.Name <> "Etat des sites") Then
If (Feuille.Name <> "Accueil") Then
If (Feuille.Name <> "RDC1") Then
If (Feuille.Name <> "Flotte") Then
If (Feuille.Name <> "Sinistres SARL") Then
Feuille.Delete
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next
Application.DisplayAlerts = True
End Sub
j'aimerais savoir si il y a pas une methode plus simple pour lister toutes les feuilles a ne pas supprimer.
de plus, si possible, pouvoir les identifier non pas avec leur nom mais avec le numero de feuille interne (feuil1,feuil5...) ce qui m'evitera de modifier la macro si je modifie le nom des feuilles.
Merci a ceux qui me liront et encore plus à ceux qui répondront
Re : Supprimer plusieurs feuilles par macro avec condition
Bonsoir Jérome
modifies comme suit :
Code:
Sub DetruitFeuille_Sauf()
Dim Feuille As Worksheet
Application.DisplayAlerts = False
For Each Feuille In Worksheets
If Feuille.Name <> "Entités" And Feuille.Name <> "Recap1" And Feuille.Name <> "Sinistres Cbt" _
And Feuille.Name <> "Parametrage" And Feuille.Name <> "Etat des sites" And Feuille.Name <> "Accueil" _
And Feuille.Name <> "RDC1" And Feuille.Name <> "Flotte" And Feuille.Name <> "Sinistres SARL" Then
Feuille.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
Re : Supprimer plusieurs feuilles par macro avec condition
Bonjour pierrot93,
Merci beaucoup, ça m'evite deja tous les if et end if. lol. ce qui n'es pas negligeable dans la mesure ou il y a une dizaine de feuilles.
Au debut j'avais essayé avec or ( ... If Feuille.Name <> "Entités" or "Recap1" or "RDC1" ...) mais ça ne marchait pas.
par contr est ce qu'il est possible de faire la meme chose sans faire reference au nom de la feuille (Recap1,Recap2,RDC1,RDC2...) qui sera amené à changer mais a leur numero de feuille dans le vba (Recap1 = Feuil1,RDC1=Feuil10 ...)
Re : Supprimer plusieurs feuilles par macro avec condition
Bonjour savourerlavie,
voici un exemple qui supprime toutes les feuilles sauf les 3 premières:
Code:
Sub DetruitFeuille_Sauf()
Dim n As Integer
On Error Resume Next
Application.DisplayAlerts = False
For n = 1 To Sheets.Count
If n <> 1 And n <> 2 And n <> 3 Then Sheets(n).Delete
Next
Application.DisplayAlerts = True
End Sub
Re : Supprimer plusieurs feuilles par macro avec condition
Re
attention Skoobi, le numéro d'index n'est pas figé, il évolue en fonction de la position de la feuille, et donc si tu en supprimes, cela change. Dans ce cas pour une boucle, commencer par la fin, avec un pas négatif :
attention Skoobi, le numéro d'index n'est pas figé, il évolue en fonction de la position de la feuille, et donc si tu en supprimes, cela change. Dans ce cas pour une boucle, commencer par la fin, avec un pas négatif :