IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Problème de lecture de range sur filtre élaboré


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Points : 67
    Points
    67
    Par défaut Problème de lecture de range sur filtre élaboré
    Bonjour,
    Après avoir cherché sur le site et ailleurs, je ne sais pas si il y une solution à ce problème:
    le besoin : filtrer sur place et sans doublons une colonne
    pour chaque élément de la liste filtrée (visible)
    effectuer un traitement
    lire l'élément suivant

    Le problème est que si ma liste filtrée à des trous (normal puisque élimination des doublons) , mon range s'arrete à la ligne de cette cellule. il ne contient apparemment que des lignes contigues :
    le filtre est réalisé comme cela et fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(lCurrentRow, lCol), Cells(lLastRow, lCol)).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    je détermine mon range comme cela et si je fais un select dessus l'affichage parait OK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set rngFiltre = wks.UsedRange.SpecialCells(xlCellTypeVisible)
    (j'ai essayé sans Used Range, avec je crois wks.Range.SpecialCells(xlCellTypeVisible) çà ne change rien au problème)

    j'obtient quelque chose comme :

    n° ligne
    1 entete
    2 mavaleur1
    3 mavaleur11
    4 mavaleur2
    5 mavaleur3
    26 mavaleur12
    280 blanc
    ../..

    Quand je parcoure on range rngFiltre, il s'arrete à la ligne 5 et si je fait un comptage rngFiltre.Rows.Count il me retourne 5 lignes.
    Comment faire pour traiter toutes les lignes visibles de la liste ?
    (j'ai essayé avec les areas, les header, etc. mais çà n'a rien donné)
    Merci de votre aide

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Tu peux imbriquer deux boucles:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       Dim Zone As Range, rngFiltre As Range, i As Long
     
        Set rngFiltre = wks.UsedRange.SpecialCells(xlCellTypeVisible)
     
        For Each Zone In rngFiltre.Areas
            For i = 1 To Zone.Rows.Count
            'Traitement
            Next
        Next
    Cordialement,

    Tirex28/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Problème de macro sur filtre élaboré
    Par doune37 dans le forum Excel
    Réponses: 6
    Dernier message: 03/01/2014, 08h26
  2. [XL-2007] Macro sur Filtre élaboré
    Par jose_67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2010, 19h45
  3. [PPT-MAC 2008] Problème de lecture de videos sur un fichier enregistré en PPS
    Par renorcht dans le forum Powerpoint
    Réponses: 0
    Dernier message: 11/11/2009, 11h13
  4. Réponses: 4
    Dernier message: 23/11/2008, 02h05
  5. [VB.NET]Problème de lecture et écriture sur fichier texte
    Par zouhib dans le forum Windows Forms
    Réponses: 25
    Dernier message: 23/05/2006, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo