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 :

[VBA] Find même sur les éléments non visibles suite à un filtre


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Points : 12
    Points
    12
    Par défaut [VBA] Find même sur les éléments non visibles suite à un filtre
    Bonjour,

    Après de longues recherches je n'ai pas réussi à trouver une réponse à ma question, et je commence à envisager qu'on me réponde "ça n'est pas possible" donc je craque, et je vous sollicite...

    Voilà ce que je souhaite faire :

    Sur une feuille j'ai une colonne d'identifiants (de tâches) et sur une seconde colonne la date pour laquelle cette tâche doit être effectuée. J'ai un filtre sur la colonne date qui me permet de n'afficher que les tâches à faire pour le dd/mm/aaaa.

    Dans une seconde feuille, je dispose d'un tableau de suivi du réalisé. En bref une personne indique sur cette feuille combien de temps elle a consacré à une tâche. Au moment de la saisie via l'événement Workbook_SheetChange j'ai besoin de récupérer la tâche sur laquelle on vient de faire une saisie (pas de soucis) puis de la chercher dans la première feuille.

    Avec une petite formule magique de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Suivi Taches").Cells(Sheets("Suivi Fiches").Range("NumTache").Find(Val(numTache)).row, Range("d06").Column)
    je vais tout droit sur l'information qui m'intéresse, sur la feuille de suivi, sur la ligne de la tâche concernée.

    Sauf que voilà, si un filtre a été appliqué sur cette feuille de suivi, il se peut que la ligne de la tâche soit masquée, et là, mon Find me plante ...

    A noter qu'il faut que je laisse le filtre actif de la première feuille s'il y en a (oui ...) ET que mon find trouve cette tâche qui existe forcément mais peut être masquée ...


    Existe-t-il, un moyen, avec Find de contourner ce problème ?

    La solution de parcourir toutes les lignes via Offset par exemple permet de palier le soucis il me semble, néanmoins cela m'obligerait à modifier une grande quantité de code, ET je pense que la réponse à ma question peut en intéresser plus d'un donc je pense que ça vaut le coup même si c'est pour me répondre "c'est impossible" au moins ça sera claire

    Par avance merci =)

    Cordialement,

    EDIT : quand je dis "mon find me plante" je veux dire qu'il me retourne Nothing
    EDIT 2 : en l'absence de filtre, mon code tourne parfaitement, et mon Find me retourne bien la valeur attendue

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    Tu as pourtant déjà répondu à ta question : la méthode Find fonctionne sur les cellules visibles ! …

    Donc si tu veux conserver cette méthode, il faut bien annuler le filtre !

    Sinon modifier le code soit en utilisant une recherche par boucle
    soit via la fonction de feuille de calculs EQUIV (Application.Match en VBA) …

    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    ... c'est claire, merci J'avais espoir qu'on me réponde "il existe un paramètre optionnel pour indiquer que tu fais le find sur les cellules non visibles également" un truc sortie du chapeau mais bon tant pis

    Merci beaucoup pour la réponse rapide !

    Bonne continuation =)

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Je confirme, le find ne fonctionne que sur les cellules visibles. Par contre, la fonction excel VLOOKUP (RECHERCHEV) fonctionne très bien sur des lignes masquées (testé) de pourrait peut-être vous aider pas mal .... et vous pouvez la conjuguer à un MATCH (Excel anglais) pour dynamiquement ressortir le champ qui vous intéresse.

    Autrement .... du VBA

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 133
    Points : 9 966
    Points
    9 966
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une autre approche consisterait à :

    1) tester si ta feuille est filtrée
    2) si c'est le cas : mémoriser les paramètres du filtre
    3) retirer le filtre
    4) effectuer ton Find
    5) remettre le filtre


    Mais je reste sur l'avis de Marc-L ... Application.Match
    ça me semble :

    - moins lourd à programmer
    - plus rapide à l'exécution

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par vinc_bilb Voir le message
    Bonjour,

    Je confirme, le find ne fonctionne que sur les cellules visibles. Par contre, la fonction excel VLOOKUP (RECHERCHEV) fonctionne très bien sur des lignes masquées (testé) de pourrait peut-être vous aider pas mal .... et vous pouvez la conjuguer à un MATCH (Excel anglais) pour dynamiquement ressortir le champ qui vous intéresse.

    Autrement .... du VBA
    E-NORME !!!!! ça marche au top merci infiniment, le Match(vlookup ...) est approuvé je prends bonne note

    Au placard 'Find'

    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    une autre approche consisterait à :

    1) tester si ta feuille est filtrée
    2) si c'est le cas : mémoriser les paramètres du filtre
    3) retirer le filtre
    4) effectuer ton Find
    5) remettre le filtre


    Mais je reste sur l'avis de Marc-L ... Application.Match
    ça me semble :

    - moins lourd à programmer
    - plus rapide à l'exécution
    J'y avais pensé en effet, néanmoins sur ma première feuille de suivi des tâches, il n'y a pas qu'un filtre en fait ... j'ai expliqué le problème en faisant simple (en essayant du moins) et ces filtres ont une position précise en plus d'être nombreux etc ça m'paraissait laborieux de les remettre ...

    Mais merci beaucoup de m'avoir consacré un peu de temps !

    Le match répond parfaitement à mes besoins

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    En fait, il y aurait une astuce avec la méthode Find si …

    La plage de recherche ne contient que des données sans formule de calculs,
    alors rechercher dans les formules via son paramètre LookIn:=xlFormulas !

    A tester …

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Hummmm chez bibi ça n'semble pas marcher ...

  9. #9
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut





    Je viens de tester : cela fonctionne si des lignes sont masquées manuellement mais pas après un filtre …

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Free94 Voir le message

    Au placard 'Find'
    Je m'auto-cite pour te répondre

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

Discussions similaires

  1. [Sources][FAQ VBA Excel] Informations sur les applications
    Par SilkyRoad dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/10/2006, 18h38
  2. [DX9][C#] Cacher les arretes non visibles
    Par lancer83 dans le forum DirectX
    Réponses: 3
    Dernier message: 19/08/2006, 16h58
  3. [VBA-E]Aide sur les ComboBox
    Par Alex_Kidd dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/05/2006, 17h47
  4. VBA Word - Aide sur les "Retours" dans tableaux
    Par wouebmaster dans le forum VBA Word
    Réponses: 5
    Dernier message: 29/12/2005, 10h08
  5. Réponses: 6
    Dernier message: 15/06/2004, 10h26

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