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 :

Raison du bug lors du filtrage avec VBA d'un tableau structuré


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Raison du bug lors du filtrage avec VBA d'un tableau structuré
    Je fais suite à une première question

    https://www.developpez.net/forums/d2...eau-structure/

    J'ai recommencé mon fichier et donc copier les valeurs et non les formules dans mon nouvel onglet.
    Mis en page refaite.

    Sauf que là je dois remettre ma formule en colonne "A" pour afficher un numéro de cumul indépendant du type de filtrage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOUS.TOTAL(103;$B$6:$B6)
    Et là lorsque je filtre, Excel m'affiche aussi la ligne qu'il ne faut pas.

    Je supprime la formule, efface le filtrage et recommence le filtrage : tout fonctionne correctement.


    Je suspectais la formule (SOUS.TOTAL et indépendante de la colonne filtrée) mais n'avait rien trouvé.


    Alors la question est : Comment faire pour ne pas avoir d'erreur tout en mettant un numéro croissant en début de ligne ?

    Après l'erreur provient peut-être d'une combinaison de problèmes non identifiés mais "SOUS-TOTAL" est le déclencheur.

    Merci de votre aide.

    ESVBA

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 178
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si aucune ligne n'est affichée, il est normal d'avoir une erreur renvoyée avec la fonction SOUS.TOTAL. Il est toujours possible de l'imbriquer dans SIERREUR
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Bonjour Philippe Tulliez
    C'est gentil de continuer à m'aider.

    Je fais un autre post sur le même problème sauf que le problème est ailleurs que le simple filtrage.


    Je n'ai pas été assez clair. Je pense avoir trouvé la cause de mes problèmes de filtrage : la première colonne avec la formule à base de "SOUS.TOTAL()".
    Cf mon premier message ci-dessus.

    mon problème est que le nombre de lignes filtrées (valeur fausse) ne correspondait pas au nombre de ligne de mon filtrage pour impression qui lui était bon (bonne liste imprimée). Ca se voit à l'écran.
    Je veux toujours connaitre mon nombre de lignes dans le tableau filtré pour savoir s'il est utile d'imprimer une page sans contenu.


    C'est l'ajout de la formule "SOUS.TOTAL()" en colonne "A" qui a provoqué un bug du filtrage. voir les capture de l'autre post où j'ai plus de valeurs que nécessaire et ne correspondant pas à mon choix de filtrage. Et tout cela en le réalisant à la main sans macro active.

    Pour moi, c'est l'ajout de "SOUS.TOTAL()" qui provoque l'erreur. Un bug d'Excel car il n'y a pas de raison.
    J'ai créé la formule puis filtrer, => BUGS J'ai tout annulé avec CTRL Z et ça refonctionne.
    Je recommence les mêmes étapes avec les mêmes résultats.

    Donc je cherche une formule qui s'incrémente que pour les valeurs affichées du filtre. ET sans VBA, je ne vois pas.

    Ah aussi, dès que la formule est saisie et supprimée à la main ou mise en apostrophe, ça ne fonctionne plus définitivement.


    Merci à toi.

    ESVBA

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 178
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La meilleure manière de vous en sortir, c'est de découper votre projet en plusieurs procédures génériques.
    J'ai relu le code que vous aviez publié dans la discussion référencée en début de celle-ci et franchement, c'est impossible de s'y retrouver.
    Si vous avez un filtrage à faire et bien créer une procédure dont le "job" consistera à filtrer les données de la table.
    Si vous devez trier la table, vous utiliser une autre procédure dont le but est de trier
    etc;
    Cela facilitera la lecture de votre code et surtout la maintenance sera aisée.
    Ainsi si le problème est dans le filtrage des données, il suffira de tester la procédure en question.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2007] Problème de filtrage avec VBA d'un tableau structuré
    Par ESVBA dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/08/2023, 22h20
  2. [AC-2013] Bug lors de l'ouverture fichier excel avec des graphiques
    Par stum32 dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/04/2017, 17h30
  3. Réponses: 14
    Dernier message: 22/07/2015, 04h18
  4. [XL-2010] Problème lors de la création de tableau croisé dynamique avec vba
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/07/2012, 17h10
  5. Transférer un tableau excel vers access avec VBA (bug)
    Par beegees dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/07/2007, 09h28

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