Sur un tableau j'utilise des filtres... mais je voudrais que ma macro
supprime toutes les lignes filtrées pour ne plus laisser apparaître que
celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir si celle
ci est hidden mais... Existe-t-il une astuce permettant de sélectionner d'un
coup toutes ces lignes pour les détruire... ce qui ferait gagner beaucoup de
temps lorsque le tableau comporte plusieurs dizaines de milliers de lignes.
Excel a peut être une donnée comportant les emplacements de ces lignes ? Car
lorsque l'on désactive un filtre il les fait réapparaître très rapidement...
Non ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ellimac
Bonjour,
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Camille
"HD" a écrit dans le message de news: fp1loe$2u29$
Bonjour,
Sur un tableau j'utilise des filtres... mais je voudrais que ma macro supprime toutes les lignes filtrées pour ne plus laisser apparaître que celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir si celle ci est hidden mais... Existe-t-il une astuce permettant de sélectionner d'un coup toutes ces lignes pour les détruire... ce qui ferait gagner beaucoup de temps lorsque le tableau comporte plusieurs dizaines de milliers de lignes.
Excel a peut être une donnée comportant les emplacements de ces lignes ? Car lorsque l'on désactive un filtre il les fait réapparaître très rapidement... Non ?
Merci d'avance pour votre aide -- @+ HD
Bonjour,
Sub Macro1()
Range("a2").Select
Range(Selection, Selection.End(xlDown)).EntireRow.Select
Selection.SpecialCells(xlCellTypeVisible).Delete
Range("A1").Select
ActiveSheet.ShowAllData
End Sub
Camille
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
fp1loe$2u29$1@biggoron.nerim.net...
Bonjour,
Sur un tableau j'utilise des filtres... mais je voudrais que ma macro
supprime toutes les lignes filtrées pour ne plus laisser apparaître que
celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir si
celle ci est hidden mais... Existe-t-il une astuce permettant de
sélectionner d'un coup toutes ces lignes pour les détruire... ce qui
ferait gagner beaucoup de temps lorsque le tableau comporte plusieurs
dizaines de milliers de lignes.
Excel a peut être une donnée comportant les emplacements de ces lignes ?
Car lorsque l'on désactive un filtre il les fait réapparaître très
rapidement... Non ?
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Camille
"HD" a écrit dans le message de news: fp1loe$2u29$
Bonjour,
Sur un tableau j'utilise des filtres... mais je voudrais que ma macro supprime toutes les lignes filtrées pour ne plus laisser apparaître que celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir si celle ci est hidden mais... Existe-t-il une astuce permettant de sélectionner d'un coup toutes ces lignes pour les détruire... ce qui ferait gagner beaucoup de temps lorsque le tableau comporte plusieurs dizaines de milliers de lignes.
Excel a peut être une donnée comportant les emplacements de ces lignes ? Car lorsque l'on désactive un filtre il les fait réapparaître très rapidement... Non ?
Merci d'avance pour votre aide -- @+ HD
HD
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Désolé Camille... j'ai dû mal m'exprimer, je voudrais en fait supprimer les lignes cachées... et non celles qui sont visibles...
Je ne connaissais pas cette propriété SpecialCells... Sympa !!!
@+ HD
Sub Macro1()
Range("a2").Select
Range(Selection, Selection.End(xlDown)).EntireRow.Select
Selection.SpecialCells(xlCellTypeVisible).Delete
Range("A1").Select
ActiveSheet.ShowAllData
End Sub
Désolé Camille... j'ai dû mal m'exprimer, je voudrais en fait supprimer les
lignes cachées... et non celles qui sont visibles...
Je ne connaissais pas cette propriété SpecialCells... Sympa !!!
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Désolé Camille... j'ai dû mal m'exprimer, je voudrais en fait supprimer les lignes cachées... et non celles qui sont visibles...
Je ne connaissais pas cette propriété SpecialCells... Sympa !!!
@+ HD
Corto
Bonjour HD, Moi je ferais dans ce gout là : set XZONE = nothing For each XXX in ZONEDATA if XXX.entirerow.hidden then if XZONE is nothing then set XZONE = XXX.entirerow else set XZONE = union(XZONE, XXX.entirerow) endif endif Next XXX if not XZONE is nothing then XZONE.delete
Corto
Bonjour,
Sur un tableau j'utilise des filtres... mais je voudrais que ma macro supprime toutes les lignes filtrées pour ne plus laisser apparaître que celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir s i celle ci est hidden mais... Existe-t-il une astuce permettant de sélectionn er d'un coup toutes ces lignes pour les détruire... ce qui ferait gagner beau coup de temps lorsque le tableau comporte plusieurs dizaines de milliers de lig nes.
Excel a peut être une donnée comportant les emplacements de ces lig nes ? Car lorsque l'on désactive un filtre il les fait réapparaître très rapidement... Non ?
Merci d'avance pour votre aide
Bonjour HD,
Moi je ferais dans ce gout là :
set XZONE = nothing
For each XXX in ZONEDATA
if XXX.entirerow.hidden then
if XZONE is nothing then
set XZONE = XXX.entirerow
else
set XZONE = union(XZONE, XXX.entirerow)
endif
endif
Next XXX
if not XZONE is nothing then XZONE.delete
Corto
Bonjour,
Sur un tableau j'utilise des filtres... mais je voudrais que ma macro
supprime toutes les lignes filtrées pour ne plus laisser apparaître que
celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir s i celle
ci est hidden mais... Existe-t-il une astuce permettant de sélectionn er d'un
coup toutes ces lignes pour les détruire... ce qui ferait gagner beau coup de
temps lorsque le tableau comporte plusieurs dizaines de milliers de lig nes.
Excel a peut être une donnée comportant les emplacements de ces lig nes ? Car
lorsque l'on désactive un filtre il les fait réapparaître très rapidement...
Non ?
Bonjour HD, Moi je ferais dans ce gout là : set XZONE = nothing For each XXX in ZONEDATA if XXX.entirerow.hidden then if XZONE is nothing then set XZONE = XXX.entirerow else set XZONE = union(XZONE, XXX.entirerow) endif endif Next XXX if not XZONE is nothing then XZONE.delete
Corto
Bonjour,
Sur un tableau j'utilise des filtres... mais je voudrais que ma macro supprime toutes les lignes filtrées pour ne plus laisser apparaître que celle correspondant aux critères de mes filtres...
Pour cela je peux bien sûr faire un test sur chaque ligne pour voir s i celle ci est hidden mais... Existe-t-il une astuce permettant de sélectionn er d'un coup toutes ces lignes pour les détruire... ce qui ferait gagner beau coup de temps lorsque le tableau comporte plusieurs dizaines de milliers de lig nes.
Excel a peut être une donnée comportant les emplacements de ces lig nes ? Car lorsque l'on désactive un filtre il les fait réapparaître très rapidement... Non ?
Merci d'avance pour votre aide
Ellimac
Re,
Sub Macro1() Range("A1").CurrentRegion.Copy Range("a50000") ActiveSheet.ShowAllData Range("A1:a49999").EntireRow.Delete Range("A1").Select End Sub
Camille
"HD" a écrit dans le message de news: fp1nio$2ul7$
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Désolé Camille... j'ai dû mal m'exprimer, je voudrais en fait supprimer les lignes cachées... et non celles qui sont visibles...
Je ne connaissais pas cette propriété SpecialCells... Sympa !!!
@+ HD
Re,
Sub Macro1()
Range("A1").CurrentRegion.Copy Range("a50000")
ActiveSheet.ShowAllData
Range("A1:a49999").EntireRow.Delete
Range("A1").Select
End Sub
Camille
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
fp1nio$2ul7$1@biggoron.nerim.net...
Sub Macro1()
Range("a2").Select
Range(Selection, Selection.End(xlDown)).EntireRow.Select
Selection.SpecialCells(xlCellTypeVisible).Delete
Range("A1").Select
ActiveSheet.ShowAllData
End Sub
Désolé Camille... j'ai dû mal m'exprimer, je voudrais en fait supprimer
les lignes cachées... et non celles qui sont visibles...
Je ne connaissais pas cette propriété SpecialCells... Sympa !!!
Sub Macro1() Range("A1").CurrentRegion.Copy Range("a50000") ActiveSheet.ShowAllData Range("A1:a49999").EntireRow.Delete Range("A1").Select End Sub
Camille
"HD" a écrit dans le message de news: fp1nio$2ul7$
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Désolé Camille... j'ai dû mal m'exprimer, je voudrais en fait supprimer les lignes cachées... et non celles qui sont visibles...
Je ne connaissais pas cette propriété SpecialCells... Sympa !!!
@+ HD
HD
Ce qui revient à un passage en revue de toutes les lignes... La solution de Ellimac est beaucoup plus rapide :
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Mais malheureusement celà détruit les lignes visibles et non les lignes cachées... Je n'ai pas trouvés de paramètres de SpecialCells permettant de ne prendre que les lignes cachées... et je ne sais pas comment inverser la sélection...
@+ HD
Ce qui revient à un passage en revue de toutes les lignes... La solution de
Ellimac est beaucoup plus rapide :
Sub Macro1()
Range("a2").Select
Range(Selection, Selection.End(xlDown)).EntireRow.Select
Selection.SpecialCells(xlCellTypeVisible).Delete
Range("A1").Select
ActiveSheet.ShowAllData
End Sub
Mais malheureusement celà détruit les lignes visibles et non les lignes
cachées... Je n'ai pas trouvés de paramètres de SpecialCells permettant de
ne prendre que les lignes cachées... et je ne sais pas comment inverser la
sélection...
Ce qui revient à un passage en revue de toutes les lignes... La solution de Ellimac est beaucoup plus rapide :
Sub Macro1() Range("a2").Select Range(Selection, Selection.End(xlDown)).EntireRow.Select Selection.SpecialCells(xlCellTypeVisible).Delete Range("A1").Select ActiveSheet.ShowAllData End Sub
Mais malheureusement celà détruit les lignes visibles et non les lignes cachées... Je n'ai pas trouvés de paramètres de SpecialCells permettant de ne prendre que les lignes cachées... et je ne sais pas comment inverser la sélection...
@+ HD
HD
Sub Macro1() Range("A1").CurrentRegion.Copy Range("a50000") ActiveSheet.ShowAllData Range("A1:a49999").EntireRow.Delete Range("A1").Select End Sub
Magnifique !!!
L'on copie donc les données visibles, on détruit tout, puis on colle... Astucieux...
Merci à vous tous !!!
@+ HD
Sub Macro1()
Range("A1").CurrentRegion.Copy Range("a50000")
ActiveSheet.ShowAllData
Range("A1:a49999").EntireRow.Delete
Range("A1").Select
End Sub
Magnifique !!!
L'on copie donc les données visibles, on détruit tout, puis on colle...
Astucieux...
Sub Macro1() Range("A1").CurrentRegion.Copy Range("a50000") ActiveSheet.ShowAllData Range("A1:a49999").EntireRow.Delete Range("A1").Select End Sub
Magnifique !!!
L'on copie donc les données visibles, on détruit tout, puis on colle... Astucieux...
Merci à vous tous !!!
@+ HD
Michel Angelosanto
J'utilise la méthode suivante:
Je mets l'inverse du filtre recherché par exemple, si je veux afficher toutes les lignes qui ont un 1 en colonne A, j'affiche toutes les lignes qui n'ont pas 1 en colonne A puis je supprime les lignes et enfin j'enlève le filtre.
Je mets l'inverse du filtre recherché par exemple, si je veux afficher
toutes les lignes qui ont un 1 en colonne A, j'affiche toutes les lignes qui
n'ont pas 1 en colonne A puis je supprime les lignes et enfin j'enlève le
filtre.
--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/
Je mets l'inverse du filtre recherché par exemple, si je veux afficher toutes les lignes qui ont un 1 en colonne A, j'affiche toutes les lignes qui n'ont pas 1 en colonne A puis je supprime les lignes et enfin j'enlève le filtre.