Supprimer les lignes masquées par un filtre

LeRevenant

XLDnaute Occasionnel
Salut les gens,

J'ai un fichier excel qui contient un tableau. Une fois que je fais mon tri par date (garder les dates supérieures à aujourd'hui), les dates antérieures à aujourd'hui sont masquées (jusque là tout va bien mdr). :rolleyes:

Étant donné que je sais que je n'aurai JAMAIS besoin de ces dates, et que je vais remanipuler le fichier, j'aimerais les supprimer (les lignes masquées).

J'ai trouvé sur internet des méthodes un peu brut, avec des "for i = 1 to 6500", je pourrais m'en contenter, mais c'est le genre de macro qui fait ramer l'ordi, et comme j'ai déjà une macro assez lourde, j'aimerais bien utiliser une méthode "efficiente", et ça doit exister.

Merci à vous
Bonne journée.
 

LeRevenant

XLDnaute Occasionnel
Re : Supprimer les lignes masquées par un filtre

j'ai trouvé une macro qui marche bien, la voici:

Code:
Dim x As Integer
Dim maligne As Integer
maligne = Range('A65536').End(xlUp).Row

For x = maligne To 1 Step -1
If Rows(x).Hidden = True Then Rows(x).Delete
Next

Si vous avez mieux, dites le ^^

À tôt bien
 

néné06

XLDnaute Accro
Re : Supprimer les lignes masquées par un filtre

Bonsoir Le revenant,

Je pense avoir mieux!:p

Regardes cet exemple, traité par tableaux?

A+

René
 

Pièces jointes

  • Classeur1.xlsm
    389 KB · Affichages: 55
  • Classeur1.xlsm
    389 KB · Affichages: 52
Dernière édition:

LeRevenant

XLDnaute Occasionnel
Re : Supprimer les lignes masquées par un filtre

En effet ta macro semble marcher plus vite, fait plus de choses!
Seul hic, je n'arrive pas à ouvrir la macro (pour pouvoir voir comment t'as fait) Oo je suppose que ça doit mon ordi qu'est à chier, ou je sais pas...


Je suis un curieux débutant en macro, et je veux savoir comment t'as fait ;p

merci beaucoup:cool:
 

néné06

XLDnaute Accro
Re : Supprimer les lignes masquées par un filtre

Re,

Voici la macro!


Option Base 1
Private Sub CommandButton1_Click()
c = Range("A1:A255").End(xlToRight).Column
Dim tablo
tablo = UsedRange
Dim tablo1
ReDim tablo1(UBound(tablo), 1 To c)
For X = 1 To UBound(tablo)
If Rows(X).Hidden = False Then
j = j + 1
For Y = 1 To c
tablo1(j, Y) = tablo(X, Y)
Next Y
End If
Next
Cells.ClearContents
[A1].Resize(UBound(tablo1, 1), UBound(tablo1, 2)).Value = tablo1
End Sub


René
 
Dernière édition:

Discussions similaires

Réponses
26
Affichages
794

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof