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 -
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...
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:
- VBA Excel 2007 boucle sur lignes filtrées
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
5 réponses
Bonjour,
Je ne l'ai pas testé, mais est-ce que cela conviendrait
Note: [maplage] la totalitée des données et ensuite filtrer selon choix et cela devrait marcher.
Salutations.
Le Pingou
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
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.
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.
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
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
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
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
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...
Bon courage
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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+
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+