VBA Excel 2007 boucle sur lignes filtrées

Résolu
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Existe t'il un moyen facile de boucler sur toutes les lignes visibles après un filtre?
Et d'y effectuer un test?

Du genre :
Pour toutes les lignes visibles de la feuille (soit "lig" le num de la ligne visible)
Pour Lig2 = Lig To Fin (bien sur Lig2 est aussi une ligne "visible")
Si cellule "K" & lig = "K" & lig2 Et cellule "F" & lig = - cellule "F" & lig2 Alors
blabla
Fin Si
Lig2 suivante
Ligne visible suivante

Je sais, je ne suis pas clair... en fait, je dois faire une double boucle sur les lignes visibles après filtre...

Vous ai-je précisé que le fichier Excel 2007 en question comporte 500 000 lignes? Non? Ah bon... D'où le filtre initial...

Merci d'avance.

Plus d'infos, n'hésitez pas...


A voir également:

5 réponses

Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Je ne l'ai pas testé, mais est-ce que cela conviendrait
For Each ligne In Range("maplage").SpecialCells(xlCellTypeVisible).Rows 
numéro = ligne.row 
Next ligne

Note: [maplage] la totalitée des données et ensuite filtrer selon choix et cela devrait marcher.
Salutations.
Le Pingou
6
Utilisateur anonyme
 
Bonsoir,
Juste une remarque pour compléter la bonne réponse de Le Pingou.
Je ne sais pas si sur excel 2007 le probléme du filtrage suppérieur à 1000 occurences différentes à été résolu....c'est à dire qu'il soit capable de filtrer plus de 1000 occurences différentes car c'est potentiellement possible sur un fichier de 500 000 lignes. Cela étant, Access le fait trés bien.
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Bonjour,

Si, effectivement, dans les versions antérieures à 2007, le filtre automatique ne laissait apparaître que les 1000 premières occurrences dans la liste de tri, il n'en était pas moins possible d'effectuer un filtre sur la 1500ème (par ex.) en choisissant "Personnalisé", mais en entrant manuellement la valeur du filtre voulu..
Sous 2007, cette limitation est à 10 000 occurrences différentes...

Bonne journée
0
Utilisateur anonyme
 
Merci du tuyau, Cousinhub du finistére ?
Par contre je resterai toujours étonné d'utiliser excel sur autant de ligne.
Ceci biensur n'engage que moi.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut,
Je profite de mes 2 minutes de connection chez un pote pour vous dire qu'effectivemnt Access aurait bien mieux géré cette bdd... C'est une demande d'aide reçue par MP ici même que je ne me sens pas capable de traiter seul. Effectivement, il faut une double boucle sur 500 000 lignes... Je reviens lundi pour ce souci. D'ici là, passez un bon week end. J'espère vous retrouver en forme lundi!!
Merci à vous
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Bonjour,

Par ce code, tu boucles sur les lignes filtrées, et les variables x1, x2, y1 et y2 te donnent les valeurs des cellules...

A supposer que ton tableau commence bien à la colonne A, sinon il faudra jouer avec l'offset du Range Database...

Sub boucle_sur_lignes_filtrees()
Dim Cel As Range, Cel2 As Range
For Each Cel In Range("_FilterDataBase").Offset(1, 5).Resize(Range("_FilterDataBase"). _
    Rows.Count - 1).SpecialCells(xlCellTypeVisible)
        For Each Cel2 In Range("_FilterDataBase").Offset(1, 5).Resize(Range("_FilterDataBase"). _
            Rows.Count - 1).SpecialCells(xlCellTypeVisible)
                x1 = Cel: x2 = Cel.Offset(, 5)
                y1 = Cel2: y2 = Cel2.Offset(, 5)
        Next Cel2
Next Cel
End Sub


Bon courage
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Est-t-il possible de savoir pourquoi il y a 2 boucles, car je pense qu'une est suffisante?
Merci.
Salutations.
Le Pingou
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Bonjour,

Je répondais à sa demande, dans laquelle il veut 2 boucles....(sans doute pour voir les doublons au niveau des colonnes F et K...(je ne connais pas la finalité de son projet....)

Bonne journée
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut à tous,
Merci de vous pencher sur mon souci. Je suis désolé de ne pas pouvoir tester, ni vous répondre, j'ai flingué mon ordi... Je vous reprends tout ça lundi... Merci encore en tout cas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour à tous,
Merci du coup de main. Nous avons laissé tomber cette idée de double boucle, bien trop complexe sur autant de lignes. La solution passe donc par plusieurs filtres. Vos solutions sont néanmoins fort juste, je les garde donc dans un coin de ma mémoire pour de futures utilisations.
Merci.
A+
0