VBA Filtre multi critères

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 !

Arpette

XLDnaute Impliqué
Bonsoir à toutes et tous, je galère avec un fitre sur une colonne.
En VB je souhaite supprimer te ma colonne toutes cellules commençant par B, C et D.
J'y parviens avec un filtre mais que sur un seul critère.
Merci de votre aide.
@+
 

Pièces jointes

Re : VBA Filtre multi critères

Bonjour Arpette,

Moi je ferais une deuxième colonne avec la formule =GAUCHE(A2;1), avec pour intitulée Premier caractere.
Ainsi, vous pourriez faire un filtre sur les lettres B,C, et D

Ensuite, en VBA, il faut utiliser ce code :
Code:
'supprime les lignes filtrées à partir de B2 (en ligne 1 il y a les titres.)
Range("B2", [B65536].End(xlUp).Address).SpecialCells(xlCellTypeVisible).EntireRow.Delete

Pour le filtre en VBA :
Code:
'Filtre B,C et D
ActiveSheet.Range("$A$1:$B$783").AutoFilter Field:=2, Criteria1:=Array("B", "C", "D"), Operator:=xlFilterValues

Avec mes petites connaissances, c'est ce que j'aurais fais. En attendant que d'autres avis expert vous parviennent.

Cordialement,
 
Re : VBA Filtre multi critères

Bonsoir Goldenboy et merci pour ta réponse, mais je cherche quelque chose de ce genre :
Code:
Sub Filtre_()
    With Sheets("Feuil1")
        
        If Not AutoFilterMode Then AutoFilterMode = True
        .[A1].AutoFilter 1, "<>B*"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
        .ShowAllData
    
     End With
End Sub
Comme ceci je garde que les cellules qui commence par B et moi je souhaite supprimer celles qui commencent par B, C et D, je n'arrive pas à construire le code.
Merci de votre aide
@+
 

Pièces jointes

Re : VBA Filtre multi critères

Re,
comme ceci j'élimine les cellules qui commencent par B:
Code:
Sub Filtre_()
    With Sheets("Feuil1")
        
        If Not AutoFilterMode Then AutoFilterMode = True
        .[A1].AutoFilter 1, "=B*"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
        .ShowAllData
    End With
End Sub
Il me reste plus qu'à éliminer celles qui commencent par C et D.
Je creuse😛
@+
 
Re : VBA Filtre multi critères

Bonsoir,

Peut être avec se code en fichier joint

ps : avec pour intitulée Premier caractere " La macro prend en compte que le 1er caractére de la phrase

si vous ne voulais pas les caracteres suivant exemple :

i/E/f/G (toute et repasser en minuscule et le sépérateur est le slash "/")

laurent
 

Pièces jointes

Dernière édition:
Re : VBA Filtre multi critères

Rebonsoir, je pense qu'il y a plus simple mais j'ai fait comme ceci :

Code:
Sub Filtre_()
    With Sheets("Feuil1")
        
        If Not AutoFilterMode Then AutoFilterMode = True
        .[A1].AutoFilter 1, "=B*"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
        .ShowAllData
        .[A1].AutoFilter 1, "=C*"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
        .ShowAllData
        .[A1].AutoFilter 1, "=D*"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
        .ShowAllData
        .[A1].AutoFilter 1, "=FI*"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
        .ShowAllData
        
    End With
End Sub

Merci à tous
@
 
- 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
242
Retour