Comment supprimer des feuilles temporaires

Fermé
clem - 27 avril 2011 à 13:25
 clem - 29 avril 2011 à 11:31
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

A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 27/04/2011 à 15:22
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
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 avril 2011 à 10:21
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
Bonjour,

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

a++
0