Effacer des feuilles sauf celles nommées...

JB22 -  
 JB22 -
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.

4 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  2. JB22
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  3. JB22
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  4. JB22
     
    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