Recuperation de lignes filtrées dans une variable tableau
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:
Code:
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 |
Merci pour votre aide
Olivier