Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Suppression Feuille si Colonne ne contient pas

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 !

fouggy

XLDnaute Junior
Slt à tous,

Mon objectif est de supprimer toutes les feuilles d'un classeur ouvert dont aucune des cellules de la colonne A ne contient un certain mot.

J'ai essayé ce qui suit mais ça le fait pas. Merci de votre aide.


Sub SupprFeuilles()

Dim Ws As Worksheet

Application.DisplayAlerts = False

For Each Ws In Sheets
If Ws.Range("A1:A150") <> "BLABLA" Then
Ws.Delete
End If
Next Ws

Application.DisplayAlerts = True

End Sub
 
Re : Suppression Feuille si Colonne ne contient pas

Bonjour

peut-être en remplaçant

If Ws.Range("A1:A150") <> "BLABLA" Then

par

If WorksheetFunction.CountIf(Ws.Range("A1:A150"), "BLABLA") = 0 Then
ou
If WorksheetFunction.CountIf(Ws.Range("A:A"), "BLABLA") = 0 Then
A+
 
Re : Suppression Feuille si Colonne ne contient pas

Bonjour, fouggy, le Forum,

Peut-être ainsi :

Code:
Option Explicit
Sub SupprFeuilles()
    Dim Ws As Worksheet
    Application.DisplayAlerts = False
    For Each Ws In Sheets
        With Ws
            If WorksheetFunction.CountIf(Ws.Range("a1:a150"), "BLABLA") = 0 Then Ws.Delete
        End With
    Next
    Application.DisplayAlerts = True
End Sub

A bientôt 🙂

P. S. : Bonjour, Paf.
 
Re : Suppression Feuille si Colonne ne contient pas

Slt le Forum,

Merci à vous deux, Paf et DoubleZéros. Vos propositions fonctionnent au top.

Pourriez-vous m'expliquer pourquoi et comment on peut appliquer un code indiquant "= 0" et qui marche, lol, alors qu'on cherche à supprimer avec comme condition "<> de quelque chose" !!!

Merci à vous encore.
 
Re : Suppression Feuille si Colonne ne contient pas

re bonjour fouggy et bonjour DoubleZero que je n'avais pas vu.

on ne peut pas l'écrire comme ça, mais If Ws.Range("A1:A150") <> "BLABLA" Then voudrait dire : si la plage A1:A150 ne contient pas de cellules ayant pour valeur "BLABLA" alors ...

Tandis que If WorksheetFunction.CountIf(Ws.Range("A1:A150"), "BLABLA") = 0 Then signifie : si dans la plage de cellules A1:A150, le nombre de cellule ayant pour valeur "BLABLA" est égal à zéro alors...


A+
 
Re : Suppression Feuille si Colonne ne contient pas

Bonsoir à tous

Une petite modif en passant pour éviter un éventuel souci si présence de feuille Graphique

Code vb:
Option Explicit
Sub SupprFeuillesBIS()
Dim Ws As Worksheet
Application.DisplayAlerts = False
For Each Ws In WorkSheets'ici modif
With Ws
If WorksheetFunction.CountIf(Ws.Range("a1:a150"), "BLABLA") = 0 Then Ws.Delete
End With
Next
Application.DisplayAlerts = True
End Sub





Une variante pour flatter mes endives et en guise de berceuse pour tenter de m'endormir 😉
Code vb:
Sub SupprFeuillesTER()
Dim Ws As Worksheet
With Application
.DisplayAlerts = False
For Each Ws In Worksheets'ici modif
With Ws
On Error Resume Next
If Application.CountIf(.[A1:A150], "ACHTUNG!Baby") = 0 Then Ws.Delete
End With
Next
.DisplayAlerts = True
End With
End Sub









 
Dernière édition:
Re : Suppression Feuille si Colonne ne contient pas

Merci Paf pour ton explication très claire. Cela ressemble de loin à un raisonnement par l'absurde, encore fallait-il y penser....

Est-ce que ce code supporte le Or ou And ?, Style :

If WorksheetFunction.CountIf(Ws.Range("A1:A150"), "BLABLA" Or "BLABLA2") = 0 Then

Merci de ta réponse.
 
Re : Suppression Feuille si Colonne ne contient pas

Yooooooo,

Grand merci à vous pour vos réponses.

A DoubleZéro dont je vais tester au plus vite la proposition.

A Staple1600 que j'ai oublié de remercier précédemment mais à qui je dois avouer que la notion de feuille graphique m'échappe complètement.

A Job75 même si je n'ai pas compris la finesse de l'intervention.

Bonne nuit à tous et encore merci.
 
Re : Suppression Feuille si Colonne ne contient pas

Bonjour à tous

une autre solution qui ne s'applique peut-être pas dans ce cas précis: utilisez le joker "*".

If WorksheetFunction.CountIf(Ws.Range("a1:a150"), "BLABLA*") = 0 Then Ws.Delete

comptera toutes les cellules commençant par "BLABLA" ( donc "BLABLA2" compris)

A+
 
Re : Suppression Feuille si Colonne ne contient pas

salut

alerte, Si... ce n'est déjà fait, mauvais temps à prévoir 😉

Pour contrôler (sans abuser des endives à la mode de Stapple 😛) ...
 

Pièces jointes

- 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
5
Affichages
551
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…