Comment supprimer des feuilles temporaires

clem -  
 clem -
Bonjour,

J'ai un fichier excel dans lequel je viens créer des feuilles temporaires lorsque je lance mes calculs, je voudrais faire une macro qui a la fin de mes calculs supprime les feuilles temporaires,
Mon idée etait de faire une macro qui supprime toutes les feuilles sauf celles qui ne sont pas temporaires, en les verrouillant ou en mettant une sécurité dessus, quelqu'un aurait une idée ??

Merci d'avance

clem

1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,
    !!! Attention ce code contient un .Delete!! A tester sur une copie de votre classeur
    Supprime les feuilles répertoriées dans le Array : "Feuil3", "Feuil4", "Feuil5" et "Feuil6" seront donc supprimées...
    Sub SupprFeuilTemp() 
    Dim FeuilTemp As Variant 
    
    For Each FeuilTemp In Array("Feuil3", "Feuil4", "Feuil5", "Feuil6") 
        Application.DisplayAlerts = False 
        With Sheets(FeuilTemp) 
            .Delete 
        End With 
        Application.DisplayAlerts = True 
    Next 
    End Sub

    Franck P
    0
    1. clem
       
      Merci de ta réponse, mais le probleme est aussi que je ne connais pas à l'avance le nombre ni le nom des feuilles que je dois supprimer, c'est pour ça que je parlais d'une fonction qui me supprimerais toute les feuilles à l'execption de celle qui sont protégées ou verrouillées....
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour, (parce que c'est bien de le dire!)
      De rien pour la réponse.
      Voici un autre code alors :
      Sub SupprFeuillesNonProtegees()
      Dim Feuilles As Worksheet
      
      For Each Feuilles In ThisWorkbook.Worksheets
          If IsSheetProtected(Feuilles.Name) = False Then
              'Application.DisplayAlerts = False
              Sheets(Feuilles.Name).Delete
              'Application.DisplayAlerts = True
          End If
      Next
      
      End Sub
      
      'sources http://www.codyx.org/snippet_tester-si-feuille-excel-est-protegee_846.aspx
      Function IsSheetProtected(ByVal sSheetName As String) As Boolean
          With Worksheets(sSheetName)
              IsSheetProtected = (.ProtectContents Or .ProtectDrawingObjects Or .ProtectScenarios)
          End With
      End Function

      1- si tu es sure de toi (et de moi...) et que tu ne veux plus des messages d'alerte, suffit de passer les lignes 'Application.DisplayAlerts = False et 'Application.DisplayAlerts = True en ligne de code (supprime les ' devant)
      2- On ne le dira jamais assez : Ce code contient un .Delete, à tester sur une copie de fichier
      3- les sources de la fonction sont citées dans le code...
      A+
      0
    3. clem
       
      Bonjour,

      Et bien c'est parfait, c'est exactement ce que je voulais, merci beaucoup pour ton aide

      a++
      0