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

Macros et VBA Excel Discussion :

Problème de filtre pour trouver la dernière ligne


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 38
    Points : 49
    Points
    49
    Par défaut Problème de filtre pour trouver la dernière ligne
    Bonjour,

    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Rows.Count, 1).End(xlUp).Row
    pour trouver la dernière ligne non vide d'une colonne. Le problème est que si un filtre est actif, et bien ça renvoie la dernière ligne non vide affichée, la réelle dernière ligne non vide pouvant se retrouver masquée par le filtre.

    utiliser UsedRange est encore plus dégeulasse..

    Existe-il une solution "propre" ? (c'est à dire mis à part recoder une fonction qui va checker les lignes qui suivent..)

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Si tu n'as qu'une seule colonne filtrée ou si toutes les colonnes filtrées possèdent le même nombre de ligne tu peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("_filterdatabase").Rows.Count + 1

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Cette solution est tout simplement géniale merci
    Je n'ai pas compris le +1 mais maintenant j'utilise la propriété range directement sans chercher les lignes ou les colonnes.

    Mais j'ai un autre problème, encore avec ces môdits filtres.. si actifs, la moindre tentative de travail dans des tableau se solde par un délire "randomesque" au moment ou on écrit les données du tableau dans le classeur.

    Exemple :

    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
    18
    19
    20
    21
    22
    23
    Sub Taste()
        Dim dataBase() As Variant
     
        'Charger les données
        ReDim dataBase(Worksheets.Count)
        For s = 1 To Worksheets.Count
            With Worksheets(s)
                dataBase(s) = .Range("_filterdatabase")
            End With
        Next s
     
        'Modifier les données
        '[...]
     
        'Ecrire les données
        For s = 1 To Worksheets.Count
            With Worksheets(s)
                .Range("_filterdatabase") = dataBase(s)
            End With
        Next s
        Erase dataBase
     
    End Sub
    Testé sur un classeur avec 2 feuilles, chacune de ces feuilles contenaient le même tableau, des titres avec filtres, quelques lignes.. sur la feuille ou les filtres ne sont pas actifs tout se passe normalement, celle ou un filtre est actif, et bien à partir de la première ligne cachée ça rempli la feuille n'importe comment

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Re,

    j'ai trouvé un truc "bricolage" mais qui marche

    Suffit d'enregistrer ces foutus filtres, les supprimer avant de copier le tableau, puis de les remettre.

    Mais bon c'est bien galère et ça ralonge le code de quelques dizaines de lignes. J'aurais aimé qu'un raccourcit existe.

    Bref résolu.

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par KekeStreet Voir le message
    Je n'ai pas compris le +1
    Cela permet de connaître la première cellule vide sous la plage filtrée, si tu souhaites avoir la dernière cellule, de la plage filtrée, contenant une valeur il suffit de ne pas mettre "+1"

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

Discussions similaires

  1. [XL-2010] Existe-t-il une methode universelle pour trouver la dernière ligne
    Par Denis_67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2015, 14h07
  2. [XL-2007] Trouver la dernière ligne après filtre et coller une selection
    Par Systémicien dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/03/2011, 08h19
  3. [VBA-E] Trouver la dernière ligne vide
    Par electrosat03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2007, 20h11
  4. problème d'algorithme pour trouver les circuit d'un graphe
    Par marc_dd dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 21/08/2006, 16h36
  5. [VBA-E]comment trouver la dernière ligne contenan
    Par couscoussier dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/03/2006, 16h53

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