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 dernière cellule et filtre activé [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut Problème dernière cellule et filtre activé
    Bonjour à tous ,

    J'utilise cette ligne de code pour déterminer ma dernière cellule utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SD_plage = SD.Range(SD.Range("A1"), SD.Range("A1").SpecialCells(xlCellTypeLastCell))
    J'utilise cette dernière cellule pour déterminer la taille de mon tableau virtuel pour exécuter toute sorte de calcul par la suite.

    Le problème est le suivant :

    Lorsque aucun filtre n'est activé sur la feuille, la ligne de code me trouve bien la dernière cellule utilisée.

    Mais lorsqu'un filtre est activé sur la feuille (par exemple un filtre sur les dates de juin)
    La dernière cellule trouvée se trouve sur la dernière ligne filtrée.

    Exemple :

    Sans filtre : dernière celulle => colonne = CA, ligne = 1556

    Avec un filtre : dernière cellule => colonne = CA , ligne = dernière ligne qui correspond au filtre.

    Je tiens à préciser que ce problème n'est arrivé que récemment, la version précédente de mon fichier excel fonctionnait parfaitement même avec les filtres activés.
    Ce qui a changé entre ces deux versions est le nombre total de ligne utilisée mais je ne pense pas que le problème vienne de là.


    Pour l'instant je désactive et réactive les filtres pour que l'outil continue d'être utilisable mais j'aimerai bien comprendre d'où vient le problème.

    Merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SD_plage = SD.Range("A1", SD.Cells(Rows.Count, 1).End(xlUp))
    Ou ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SD_plage = Application.Intersect(SD.Rows(1), SD.UsedRange)

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut
    Bonjour Menhir,

    Désolé pour la réponse tardive

    Malheureusement les deux exemples ne fonctionne pas.

    J'ai une erreur "indice n'appartient pas à la sélection" dans les deux cas.

    Ce qui me perturbe vraiment c'est que ce problème apparaît "comme par magie"...

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Sami_Ba Voir le message
    J'ai une erreur "indice n'appartient pas à la sélection" dans les deux cas.
    Quand la macro plante, regarde le contenu de la variable SD dans la liste des variables locales.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Quand la macro plante, regarde le contenu de la variable SD dans la liste des variables locales.
    SD est le nom de ma feuille, vu que je l'utilise souvent cette variable est défini en public et je fais un set à chaque début de programme.
    Lorsque la macro plante, sa valeur n'est pas affichée dans les variables locales.

    Sinon j'ai trouvé une solution qui me convient donc je la partage :

    je récupère la dernière ligne et la dernière colonne utilisée grâce à ces lignes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.CountA(SD.Columns(X))
    Application.CountA(SD.Rows(Y))
    Il faut juste faire gaffe que sur la colonne X et la ligne Y il n'y a pas de cellule vide au milieu sinon ça ne marche pas.

    Puis je récupère la plage total :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SD_plage = SD.Range("A1", SD.Cells(nombre_max_lig_suivi + 1, nombre_max_col_suivi + 1))


    Merci pour ton aide Menhir !

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

Discussions similaires

  1. [XL-2007] Récupérer la valeur de la dernière cellule active d'une colonne
    Par Coucou17 dans le forum Excel
    Réponses: 4
    Dernier message: 11/12/2016, 21h33
  2. Se positionner dans l'avant dernière cellule d'un tableau avec filtre
    Par chichibeignet dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/01/2016, 15h12
  3. avant dernière cellule d'une colonne filtrée
    Par orgnobi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/09/2012, 11h51
  4. [XL-2007] Macro filtre automatique données multiples dans une cellule +Problème si cellule vide
    Par jocky34000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/04/2012, 05h36
  5. [OLE Excel] Aller jusqu'à la dernière cellule rempli
    Par JBrek dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/08/2009, 19h21

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