Effacer des feuilles sauf celles nommées...

Fermé
JB22 - 15 mai 2021 à 11:47
 JB22 - 15 mai 2021 à 18:43
Bonjour,
J' ai un ficher EXCEL comprenant diverses feuilles que je dois conserver et d' autres, commençant par "R", que je veux supprimer.
J' ai la macro suivante qui supprime les feuilles que je veux supprimer mais qui supprime également les deux dernières feuilles qui doivent être conserver.

For Each sh In Worksheets

If sh.Name <> "Liste" And sh.Name <> "F.P.8" And sh.Name <> "VPC" And sh.Name <> "F.MERE" And sh.Name <> "Lisez-moi" _
And sh.Name <> "POUV" And sh.Name <> "FormVPC" And sh.Name <> "ConvAG" And sh.Name <> "P.V.A.G" _
Then sh.Delete

Next

Un grand merci pour l' aide.
A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 15 mai 2021 à 14:03
Bonjour,

comme ceci:

Option Explicit
Sub supprimer()
'Déclare la variable objet Worksheet
Dim Ws As Worksheet
Application.DisplayAlerts = False
'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
'en compte.
'ThisWorkbook correspond à l'objet classeur contenant la macro
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "Feuil1" And Ws.Name <> "Feuil3" Then 'adapter nom feuille à conserver
   Ws.Delete
    End If
Next Ws
Application.DisplayAlerts = True
End Sub


0
Merci de vous avoir penché, rapidement, sur mon problème.

A la ligne 13 Next Ws j' ai le message suivant :" Référence de contrôle incorrect dans Next"

Cdt,
JB22
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
15 mai 2021 à 16:29
un problème dans la dénomination des feuilles à conserver

si tu ne veux garder que les 2 dernières feuilles tu peux faire comme ceci:

Option Explicit
Sub supprimer()
'Déclare la variable objet Worksheet
Dim Ws As Worksheet
Application.DisplayAlerts = False
'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
'en compte.
'ThisWorkbook correspond à l'objet classeur contenant la macro
For Each Ws In ThisWorkbook.Worksheets
If Ws.Index <> Worksheets.Count And Ws.Index <> Worksheets.Count - 1 Then
   Ws.Delete
    End If
Next Ws
Application.DisplayAlerts = True
End Sub


@+ Le Pivert
0
Pour comprendre mon problème je vous expose les données.
Il s' agit de la gestion des votes en Assemblée générale, j' ai donc des feuilles qui doivent être conservées et des feuilles correspondantes à chaque question à l' ordre du jour, ces feuilles ne doivent pas être conservées dans le dossier d' une nouvelle A.G.
Toutes les feuilles de vote crées commencent par "R."
Dans la macro de création d" un dossier pour une nouvelle A?G. je veux supprimer les feuilles de résolution de l' ancienne A.G.
Je reste à votre disposition pour toutes informations complémentaires, je vous remercie de votre aide.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
15 mai 2021 à 17:55
Si j'ai bien compris tu veux supprimer les feuilles commençant par la lettre R ou r, c'est bien cela?

Option Explicit
Option Compare Text
Sub supprimer()
'Déclare la variable objet Worksheet
Dim Ws As Worksheet
Application.DisplayAlerts = False
'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
'en compte.
'ThisWorkbook correspond à l'objet classeur contenant la macro
For Each Ws In ThisWorkbook.Worksheets
If Left(Ws.Name, 1) = "R" Then
   Ws.Delete
    End If
Next Ws
Application.DisplayAlerts = True
End Sub


Voilà

@+ le Pivert
0
Cette suppression à partir de la première lettre des feuilles à supprimer fonctionne très bien, après avoir supprimer les trois premières lignes :
1- Option Explicit
2- Compare Text
3- Sub supprimer

Je vous suis reconnaissant de votre aide et vous remercie grandement;

Cordialement,
Jean Braconnier
0