Suppression de lignes filtrées

WaxistSelecta

XLDnaute Junior
Bonjour,

je cherche à réaliser l'opération suivante en vba:

Effectuer un tri avec un critère X
Supprimer les lignes résultantes de ce filtre

Ci dessous mon code, qui ne fonctionne pas correctement :

Sub DeleteUselessRows()

Sheets("Votre Région a date").Select
Rows("6:6").Select
Selection.AutoFilter
ActiveSheet.Range("$A$6:$AT$60").AutoFilter Field:=6, Criteria1:= _
"National"
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.ClearContents

End Sub


Merci d'avance si qqun a une petite idée d'optimisation / de correction. Je cherche sans vraiment trouver, n'étant pas expert du sujet :)

Wax
 
G

Guest

Guest
Re : Suppression de lignes filtrées

Bonjour,

Tu peux essayé ceci, si cela ne fonctionne pas, donne nous un fichier exemple. Quelle est la nécéssité de Row(6:6).autofilter?

Code:
[COLOR=BLUE]Sub[/COLOR] DeleteUselessRows()
    [COLOR=BLUE]With[/COLOR] Sheets([i]"Votre Région a [COLOR=BLUE]date[/COLOR]"[/i])
        .[COLOR=BLUE]Select[/COLOR]
        .Range([i]"$A$6:$AT$60"[/i]).AutoFilter Field:=6, _
                                         Criteria1:=[i]"National"[/i]
        [COLOR=BLUE]On[/COLOR] [COLOR=BLUE]Error[/COLOR] [COLOR=BLUE]Resume[/COLOR] [COLOR=BLUE]Next[/COLOR]    [COLOR=GREEN]'au cas ou aucune ligne ne serait filtrée[/COLOR]
        .SpecialCells(xlCellTypeVisible).Delete
    [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]With[/COLOR]
[COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub[/COLOR]

A+
 

WaxistSelecta

XLDnaute Junior
Re : Suppression de lignes filtrées

Salut Hasco,

d'abord merci pour la réponse rapide!

J'ai testé ta proposition, ca fonctionne sur la partie "filtrage" mais pas sur la suppression des lignes filtrées.

.SpecialCells(xlCellTypeVisible).Delete

Pas d'erreur, simplement, la suppression ne s'effectue pas...

Est-ce que cela te parle?

Merci d'avance!

Wax
 

WaxistSelecta

XLDnaute Junior
Re : Suppression de lignes filtrées

Re,

Ok désolé, je comprends que tu as besoin d'un fichier illustratif :)

J'en joins un : tu y constateras que le filtre sur "National" est bien effectué mais que les lignes concernées ne sont pas supprimées par le code...

Merci pour ton aide.

Cdt
 

Pièces jointes

  • EX_AQUITAINE.zip
    11.5 KB · Affichages: 68
G

Guest

Guest
Re : Suppression de lignes filtrées

Re,

Code:
Sub DeleteUselessRows()
 Dim plage As Range
    With Sheets("Votre Région a date")
        .Select
        Set plage = .Range("$A$7:$AT$60")
        With plage
            .AutoFilter field:=4, Criteria1:="National", visibleDropdown:=True
            plage.SpecialCells(xlCellTypeVisible).EntireRow.Delete
            .AutoFilter field:=4 'Annule le filtre
        End With
        
    End With
End Sub

A+
 
G

Guest

Guest
Re : Suppression de lignes filtrées

Re,

comme ceci se sera mieux si le filtre ne renvoie aucune ligne:

Code:
[COLOR=blue]Sub[/COLOR] DeleteUselessRows()
    [COLOR=blue]Dim[/COLOR] plage [COLOR=blue]As[/COLOR] Range
    [COLOR=blue]With[/COLOR] Sheets([I]"Votre Région a [COLOR=blue]date[/COLOR]"[/I])
        .[COLOR=blue]Select[/COLOR]
        
        [COLOR=blue]With[/COLOR] .Range([I]"$A$7:$AT$60"[/I])
            .AutoFilter field:=4, Criteria1:=[I]"National"[/I], visibleDropdown:=[COLOR=blue]True[/COLOR]
            [COLOR=blue]On[/COLOR] [COLOR=blue]Error[/COLOR] [COLOR=blue]Resume[/COLOR] [COLOR=blue]Next[/COLOR]
            [COLOR=blue]Set[/COLOR] plage = .SpecialCells(xlCellTypeVisible)
            [COLOR=blue]If[/COLOR] [COLOR=blue]Not[/COLOR] plage [COLOR=blue]Is[/COLOR] [COLOR=blue]Nothing[/COLOR] [COLOR=blue]Then[/COLOR]
                plage.EntireRow.Delete
                 .AutoFilter field:=4
           [COLOR=blue]End[/COLOR] [COLOR=blue]If[/COLOR]
        [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
    [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]

De plus, mets cette macro dans un module Général comme une macro normale et non pas dans le module de code de la feuille.

A+
 

Discussions similaires

Réponses
38
Affichages
5 K

Statistiques des forums

Discussions
312 413
Messages
2 088 211
Membres
103 768
dernier inscrit
proxyci