Pb macro VBA pour supprimer ligne

Bonjour,

Je croyais avoir trouvé une macro qui effacait les lignes filtrées mais a la fin du script, je verifie et:

les lignes sont justes masquees mais pas efface du fichier.

Ou est mon erreur?

Selection.AutoFilter Field:=19, Criteria1:="0,0"

Range([A5],[A5].End(XlDown)).Select

Selection.SpecialCells(xlCellTypeVisible).Select

Selection.EntireRow.Delete Shift:=xlUp

Selection.AutoFilter Field:=19

Mes lignes à effacer commence en A5.

Edit dan: Modifié titre du sujet

Bonjour PicFlute,

J'ai fais une macro en module 1... Je crois que cela correspond à ce que tu veux...

Pour résumer, tu veux effacer les lignes, au delà de la 4ème dont les valeurs sont à zéro en colonne S (colonne 19).

C'est OK pour toi ?

Cordialement.

Captain SOLO

En fait ,plus généralement, je voudrais pouvoir effacer les lignes que j'affiche apres n'importe quel filtre.

Toutes les solutions que je vois sont les memes, mais soit m'efface la ligne de filtrage ou alors ne me les efface pas.

Voici mon excel en piece jointe.

Pour info, quelqu'un m'a parlé d'une fonction resize pour résoudre mon pb mais je ne vois pas comment l'utiliser.

Mon dernier code:

Sub Macro2()

Sheets("Synthèse").Select

ActiveWindow.Panes(2).Activate

ActiveSheet.ShowAllData

Selection.AutoFilter Field:=19, Criteria1:="0,0"

' Set to_delete = ActiveSheet.AutoFilter.Range

' to_delete.Offset(1, 0).Resize(to_delete.Rows.Count - 1, to_delete.Columns.Count).EntireRow.Delete

Range(Range("A5"), Selection.End(xlDown)).EntireRow.Delete

Selection.AutoFilter Field:=19

End Sub

-- 15 Mar 2010, 09:58 --

avec le fichier joint

33test.zip (91.89 Ko)

Bonjour

Peux-tu tester ce fichier ?

47test.zip (102.28 Ko)

Amicalement

Nad

Bonjour Nad, picflute,forum,

Encore un fichier polué , 600 Ko avec rien dedans ! , revenu à 57 Ko

Ne sachant pas utiliser les filtres automatiques, voici un filtre élaboré (+ simple d'utilisation)

il te faut donc 2 boutons, un pour filtrer selon ton choix et l'autre pour supprimer les lignes filtrées.

cela te permet de voir ce que tu vas supprimer (contrôle)

ici pour la démo, les lignes sont colorées en bleu,

tu remplaceras:

Range("Activité").SpecialCells(xlCellTypeVisible).EntireRow.Interior.ColorIndex = 8

par:

Range("Activité").SpecialCells(xlCellTypeVisible).EntireRow.Delete

PS: la ligne 6 est masquée pour esthétique.

Bonne journée

Claude

Merci mais je voudrais plutot un script automatique sans bouton alors j'ai essaye d'adapter ton code au mien mais ca revient a ce que j'avais déjà essayer je crois:

Sub Macro2()

ActiveSheet.ShowAllData

Selection.AutoFilter Field:=19, Criteria1:="0,0" 'filtre deslignes

Range("a5:a" & Lg).Name = "Activité"

Range("Activité").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Selection.AutoFilter Field:=19

End Sub

a5 étant la première case des lignes filtrées.

Mais ca ne marche toujours pas: la methode range de l'objet _global a echoué.

De plus il reste sur le filtre baclog_corrigé=0 mais les lignes ne sont pas effacées.

Je ne comprends pas pourquoi il n'execute pas le delete de :

Range("Activité").SpecialCells(xlCellTypeVisible).EntireRow.Delete

2gaspardp.xlsx (10.73 Ko)

re,

Pour ma part, j'ai tout dit sur ce sujet !

commence par faire le ménage dans ton fichier

à+... Claude

merci qd meme, mais ca m'aide pas:

mon script ne marche tjs pas et ca m'explique pas pourquoi le delete ne fonctionne pas ds mon fichier.

Faire le ménage ds mon fichier? je veux bien mais explique moi un peu ce que tu veux dire.

Désolé mais c'est pas évident pour moi.

Pour info, ce fichier vient d'une tierce personne ds le cadre de mon travail et c'est sa simplification que je cherche à automatiser.

En espérant que quelqu'un puisse m'aider encore.

-- 16 Mar 2010, 10:35 --

Bonjour,

Je viens de tester le code suivant et ca marche, si je fais le déclenche le filtre à la main.

Sub Macro2()

' ActiveSheet.ShowAllData

' Selection.AutoFilter Field:=19, Criteria1:="0,0"

Range(Range("A5"), Selection.End(xlDown)).EntireRow.Delete

Selection.AutoFilter Field:=19

End Sub

Donc, mon pb vient de ma selection auto scriptée ds le VBA à mon avis:

Selection.AutoFilter Field:=19, Criteria1:="0,0"

Une idée pour corriger ce pb?

Car je dois automatiser differents filtrage afin de'effacer les lignes successivement.

Merci pour votre attention.

Rechercher des sujets similaires à "macro vba supprimer ligne"