Condition dur filtre

  • Initiateur de la discussion Initiateur de la discussion sonskriverez
  • 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 !

S

sonskriverez

Guest
Bonsoir,

Je voudrais deleter des lignes à partir d'un filtre automatique, pour ce faire j'emploie le code suivant :

Worksheets('Sheet1').Range('A1').AutoFilter Field:=8, Criteria1:='=*RESOLVED*'
' Delete les lignes selectionnées
Application.DisplayAlerts = False
Set tbl = ActiveCell.CurrentRegion = True
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Delete
Application.DisplayAlerts = True
Selection.AutoFilter ' Enlève le filtre automatique

Mes 2 problèmes sont :

1°) avec cette méthode si le critère n'existe pas toutes les données de la feuille sont deletées, comment tester si le critère existe ?

2°) je dois répéter ce module 9 fois car 9 critères différents, il y a t-il un autre moyen de deleter plusieurs lignes avec plusieurs critères.

Merci de votre aide et longue vie au forum
 
bonjour

tu pourrais pas exemple verifier le nombre de lignes visibles dans la feuille . si le nombre =65536 (aucune ligne masquée) , le critere n'existe pas dans la feuille


If Feuil1.Columns(1).SpecialCells(xlCellTypeVisible).Count <> 65536 Then
MsgBox 'Le critere existe dans la feuille'
Else
MsgBox ' Le critere n'existe pas dans la feuille'
End If



par contre je n'ai pas bien compris la 2eme partie de ta question



bonne journée
MichelXld
 
Désolé Michelxld, j'ai essayé cela ne fonctionne pas.

dans l'exemple: le critère de la 1 ere boucle existe y'a pas de pbl, par contre le critère de 2ème n'existe pas et cela ne marche pas

Peut-être qu'il considère que la feuille n'est pas vide à cause de la ligne de filtre?

'Selectionne les lignes 'RESOLVED'
Worksheets('sheet1').Select
Worksheets('Sheet1').Range('A1').AutoFilter Field:=8, Criteria1:='=*RESOLVED*' 'Selectionne selon le critère
If Feuil1.Columns(1).SpecialCells(xlCellTypeVisible).Count <> 65536 Then
Set tbl = ActiveCell.CurrentRegion
Application.DisplayAlerts = False
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Delete
Application.DisplayAlerts = True
Selection.AutoFilter ' Enlève le filtre automatique
Else
Selection.AutoFilter ' Enlève le filtre automatique
End If

'Selectionne les lignes 'FRAMSLN'
Worksheets('Sheet1').Range('A1').AutoFilter Field:=7, Criteria1:='=*FRAMSLN*'
If Feuil1.Columns(1).SpecialCells(xlCellTypeVisible).Count <> 65536 Then
Set tbl = ActiveCell.CurrentRegion
Application.DisplayAlerts = False
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Delete
Application.DisplayAlerts = True
Selection.AutoFilter ' Enlève le filtre automatique
Else
Selection.AutoFilter ' Enlève le filtre automatique
End If
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

J
  • Question Question
Réponses
5
Affichages
2 K
JURGEN_59
J
S
  • Question Question
Réponses
2
Affichages
2 K
sardaucar
S
N
Réponses
4
Affichages
2 K
nomitse
N
N
Réponses
7
Affichages
10 K
Niconinial
N
T
  • Question Question
Réponses
2
Affichages
1 K
Trinitybarb
T
E
Réponses
0
Affichages
1 K
eeyglunent
E
J
Réponses
1
Affichages
1 K
R
Réponses
0
Affichages
582
R
V
Réponses
7
Affichages
7 K
V
P
Réponses
0
Affichages
1 K
porcinet95
P
R
Réponses
0
Affichages
6 K
R
A
Réponses
14
Affichages
41 K
Amstrad
A
Retour