VBA est-on limité sur les filtres

Arpette

XLDnaute Impliqué
Bonsoir à toutes et tous,
J'ai une macro qui fait des filtres sur plusieurs onglets.
Tout ce passe bien, sauf sur un onglet qui contient 78000 lignes.
Mon code plante au moment de supprimer les lignes qui ne répondent pas au critères
( erreur 1004, plage de données trop complexe).
Apparemment il y a trop de lignes. Peut-on contourner le problème

Code:
With Worksheets("Test").Range("b3:b" & Worksheets("Test").Range("b1000000").End(xlUp).Row)
   Set d = .Find(c)
        If Not d Is Nothing Then
            Départ = d.Address
            Do
                d(1, 12) = "X"
            Set d = .FindNext(d)
            Loop While Not d Is Nothing And d.Address <> Départ
        End If
        
  End With
         
  Set c = c(0, 1)
Loop
With Worksheets("TEST")
If Not AutoFilterMode Then AutoFilterMode = True
        
        .[M1].AutoFilter 13, "<>X"
        Set d = .Range("_FilterDataBase")
        d.Offset(1, 0).Resize(d.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp 'plante ici
        .ShowAllData
        .Columns("M:M").Clear
End With
Merci de votre aide.
@+
 

tototiti2008

XLDnaute Barbatruc
Re : VBA est-on limité sur les filtres

Bonsoir Arpette,

Donc, visiblement, oui
Je suppose qu'il y a une limite sur le nombre de zones (Areas) d'une plage de cellule
La seule autre solution que je vois est de boucler sur les lignes (de la fin au début c'est mieux pour les suppressions) et de faire ta suppression si la colonne M contient un X
Après, si c'est trop long, on pourra aussi envisager la possibilité de passer par des tableaux
 

Arpette

XLDnaute Impliqué
Re : VBA est-on limité sur les filtres

Bonjour à toutes et tous,
Mon code fonctionne bien sur tous les onglets du fichier sauf sur celui-ci.
Je pensais que cela venait du nombre de ligne, mais si je copie la feuille dans un autre classeur il fonctionne.
Le lien pour accéder au fichier Ce lien n'existe plus
Merci de votre aide.
@+
 
G

Guest

Guest
Re : VBA est-on limité sur les filtres

Bonjour,

Ce n'est pas à cause du nombre de ligne mais du nombre de plages (cellules, lignes) non contigües limitées jusqu'à la version 2010 à 8912 (ou 9812 je ne sais plus).

A+
 

tototiti2008

XLDnaute Barbatruc
Re : VBA est-on limité sur les filtres

Bonjour Arpette, Bonjour Hasco, :)

Donc tu n'as pas compris ma réponse ou tu n'as pas réussi à la mettre en oeuvre
Il ne faut plus sélectionner les cellules visibles suite à ton flitre, il faut :
ne pas filtrer tes données
Faire une boucle (For i = .... Next) sur l'ensemble des lignes, de la dernière à la première
Pour chaque ligne, vérifier si le contenu de la colonne M est un "X"
Si oui, supprimer la ligne

Donc plus de filtre, plus de sélection
 

Arpette

XLDnaute Impliqué
Re : VBA est-on limité sur les filtres

Bonsoir tototiti, j'ai bien compris, mais c'est les cellules qui contiennent X que je veux garder.
Suite à la réponse d'Hasco, je pense qu'il faut que je trie sur la colonne où je fais la recherche, c'est à dire colonne B
Merci de votre aide.
@+
 

Arpette

XLDnaute Impliqué
Re : VBA est-on limité sur les filtres

Rebonsoir tototiti, je te confirme, j'ai rajouté ceci devant mon précédent code et cela fonctionne.
Code:
With Worksheets("GDMForecast")
   
   'Sélection de la plage pour trier
    Range("A2:L" & Range("L65535").End(xlUp).Row).Select
    ActiveWorkbook.Worksheets("GDMForecast").Sort.SortFields.Clear
    'Sélection de la colonne à trier, ici B
    ActiveWorkbook.Worksheets("GDMForecast").Sort.SortFields.Add Key:=Range( _
        "B3:B" & Range("B65535").End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
        With ActiveWorkbook.Worksheets("GDMForecast").Sort
        .SetRange Range("A2:L" & Range("L100000").End(xlUp).Row)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
        End With
End With
Merci à tout les deux pour vote aide.
@+
 

Discussions similaires

Réponses
1
Affichages
168
Réponses
6
Affichages
142

Statistiques des forums

Discussions
312 277
Messages
2 086 715
Membres
103 378
dernier inscrit
phdrouart