Supprimer les lignes masquées par un filtre

  • Initiateur de la discussion Initiateur de la discussion LeRevenant
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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). 🙄

É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.
 
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
 
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😎
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour