Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 12/03/2010, 13h32   #1
Invité de passage
 
Inscription : mars 2010
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 3
Points : 0
Points : 0
Par défaut macro robuste pour supprimer lignes apres filtrage

Bonjour,

J'essaie de créer une macro vba pour effacer les lignes que je vois pares filtrage.
Toutes mes tentatives echouent car elles effacent la ligne ou il y a le filtre.

J'ai essaye 2 methodes:
Code :
1
2
3
4
 Selection.AutoFilter Field:=19, Criteria1:="0,0"
    Range(Selection, Selection.End(xlDown)).EntireRow.Select
    Selection.SpecialCells(xlCellTypeVisible).Delete
    Selection.AutoFilter Field:=19
ou:
Code :
 Selection.AutoFilter Field:=19, Criteria1:="0,0"
Range("a5",[a65536].End(xlUp).Address).SpecialCells(xlCellTypeVisible).EntireRow.Delete

Dans mon exemple, A5 est la premiere case de la premiere lignes affichées apres filtrage, et donc la premiere ligne a effacer.

Merci de votre aide car apres plusieurs jours de recherche sur le net, je trouve des bouts d ecode mais il ne marche pas sytematiquement.
Par exemple, le 2ième code que j'ai mis marche pour un fichier excel mais ne marche pas sur un autre ou la ligne du filtre est effacee sans savoir pourquoi.

Dernière modification par Philippe JOCHMANS ; 12/03/2010 à 13h33. Motif: Ajout des balises codes : Sélection du code + # dans la barre d'outils de la fenêtre de rédaction des messages
picflute est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2010, 13h52   #2
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 201
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 201
Points : 4 195
Points : 4 195
Bonjour,

vois la réponse dans : ce fil 17h57.

La solution est au niveau de Resize

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 09h35   #3
Invité de passage
 
Inscription : mars 2010
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 3
Points : 0
Points : 0
Merci Ormonth et désolé de mon retard mais je pensais que je recevrais un mail qd j'aurais une reponse.

ALors j'ai essayé avec ta remarque mais je suis pas sur d'utiliser correctement la fonction resize, Je debute un VBA.
J'ai fait le code suivant mais ca m'efface tout ce qu'il y a ds sous la ligne de filtrage.

Code :
1
2
3
4
5
6
7
8
9
Sub Macro2()
 
    ActiveSheet.ShowAllData
    Selection.AutoFilter Field:=19, Criteria1:="0,0"
    ActiveWindow.Panes(1).Activate
    Set to_delete = ActiveSheet.AutoFilter.Range 
    to_delete.Offset(1, 0).Resize(to_delete.Rows.Count - 1, to_delete.Columns.Count).EntireRow.Delete
    Selection.AutoFilter Field:=19
End Sub
De plus, ce que je comprends pas c'est que le premier code que j'ai decrit, marche sur un autre fichier donc ca a l'air plutot aleatoire mon truc et pourtant ce sont les lignes de codes décrites sur tous les forums.

Donc, ta solution avec resize doit surement mieux convenir mais je ne dois pas bien l'utiliser.

Qu'ai-je rate?

Merci pour ton aide.

Dernière modification par AlainTech ; 08/05/2010 à 15h00. Motif: Balises [code]
picflute est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 09h55   #4
Invité de passage
 
Inscription : mars 2010
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 3
Points : 0
Points : 0
activation de la notification par mail
picflute est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 08h24.


 
 
 
 
Partenaires

Hébergement Web