vba : supprimer des onglets en fonction du nom

  • Initiateur de la discussion Initiateur de la discussion Vilain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Vilain

XLDnaute Accro
Bonjour à tous,

Je vous soumet une petite question.
J'ai une macro qui me crée des onglets.
Cette macro est lancée régulièrement, je voudrais donc qu'avant toutes choses elle vérifie si les onglets sont dans le classeur et si oui, je voudrai les supprimer.
Comment faire ? 😕
J'utilise pour le moment une macro qui compte les onglets et agit en fonction :


Sub EXEMPLE()

Dim NbreOnglets As Byte
NbreOnglets = Sheets.Count
If NbreOnglets > 2 Then

Application.DisplayAlerts = False
Sheets(Array("Base_pour_graph", "Graphique", "Calcul")).Select
ActiveWindow.SelectedSheets.Delete


Else
End If

End Sub


Merci pour votre aide par avance 🙂
 
Re : vba : supprimer des onglets en fonction du nom

Merci pour ton aide. Dernière question, je souhaiterai utilisé une fonction "ou" pour suppriomer mes 3 onglets d'un coup.
J'ai essayé ceci :

Sub EXEMPLE()

Dim i&
For i = 1 To Sheets.Count
If Sheets(i).Name Like "Base_pour_graph" Or "Graphique" Or "Calcul" Then
Sheets(i).Delete
End If
Next i

End Sub


J'ai une erreur à cause de mes "OR". Je ne sais pas comment les utiliser.
Encore merci 🙂
 
Re : vba : supprimer des onglets en fonction du nom

Bonjour,

peut être comme ceci si j'ai bien ompris :

Code:
Option Explicit
Sub test()
Dim t() As Variant, ws As Object
t = Array("Base_pour_graph", "Graphique", "Calcul")
Application.DisplayAlerts = False
For Each ws In Sheets
    If Sheets.Count > 1 Then If Not IsError(Application.Match(ws.Name, t, 0)) _
        Then ws.Delete
Next ws
Application.DisplayAlerts = True
End Sub

bonne soirée
@+
 
Re : vba : supprimer des onglets en fonction du nom

Re,

c'est une variable objet qui est utilisé dans la boucle "for each" de la collection des "sheets" du classeur actif... elle est initialisée pas par les différents objets "feuille" de ton classeur (feuille decalcul, feuille graph et autres éventuellement)...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
586
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
615
Réponses
5
Affichages
691
Réponses
7
Affichages
832
P
Réponses
15
Affichages
3 K
Pygos69
P
Retour