Bonjour à tous
J’ai une feuille excel de 36000 lignes et 5 colonnes dont je cherche à filtrer les lignes à partir de la présence d’une sous chaine dans chaque cellule de la 5ème colonne ;
Problème : nombre de ces cellules dépassent la limite des 255 caractères au dela de laquelle le filtre automatique ne repère plus rien.
J’ai déjà fait une macro qui fonctionne bien mais un peu lentement (car je copie la ligne chaque fois que le critère est repéré
Peu familier avec les variables tableaux, je crois comprendre qu'on peut stocker dans une variable tableau les lignes repondant au critere puis réinjecter la plage crée en une seule commande dans une nouvelle feuille. Mais je n'arrive pas à construire la boucle pour ce faire. J'ai pensé à un truc du style:
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 'ma plage à filtrer montab=(sheets(1).range("A1 :E36000")) 'boucle sur la colonne dont les cellules contiennent la sous-chaine/critere de tri for i=1 to 36000 if instr(montab(i,5), critere) <> o then je stocke dans une autre variable indicée (cest là que je coince) 'boucle sur les cellules de la ligne for j=1 to 5 'mais la redim ne marche pas pour la 1ère dimension Redim preserve varFiltre(n,j) varFiltre(n,j)=montab(i,j) next j n=n+1 end if next i sheets(sheets.count).Range(Cells(1, 1), Cells(UBound(varFiltre, 1), UBound(varFiltre, 2))) = varFiltre
Olivier
Partager