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 :

Comment desactiver XLWhole de la fonction find après utilisation [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Comment desactiver XLWhole de la fonction find après utilisation
    Bonjour,

    j'utilise dans une procédure une fonction .find avec l'option lookat:=xlWhole

    Le problème c'est qu'après le bouton recherche (CTRL+F) des utilisateurs reste positionne à rechercher la totalité de la cellule.
    Comment réintialiser ?
    refaire un .find bidon avec lookat:=xlPart ?
    C'est ce que j'ai fait en fin de procédure, mais c'est moche !

    Confirmé dans l'aide en ligne
    https://msdn.microsoft.com/fr-fr/VBA...5)%26rd%3Dtrue

    Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucune valeur pour ces arguments lors du prochain appel à la méthode, les valeurs enregistrées sont utilisées. Le fait de définir ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments explicitement chaque fois que vous utilisez cette méthode.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour,
    Comment desactiver XLWhole de la fonction find après utilisation
    Une idée : en spécifiant systématiquement le paramètre XlLookAt, tout simplement.

  3. #3
    Expert éminent
    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
    Par défaut
    Bonjour,

    ou encore apprendre aux utilisateurs à vérifier leur paramétrage de recherche !   Ils en seront moins quiches

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Je ne comprends pas un traître mots!

    Que veux tu faire exactement?

  5. #5
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci Marc,
    Mais le "Grand EST" s'est s'est fait une spécialité de la quiche justement, domage.

    Dysortographie, je ne sais pas quoi dire de plus.
    j'ai des macros avec .find lookat:=xlWhole
    Si l'utilisateur utilise la macro après son (CTRL+F) continue à chercher sur toute la cellule.
    et comme il faut penser à cliquer sur option pour voir que la coche Totalité de la cellule reste cochée.

    Comme expliqué pour l'instant je fait une recherche bidon en fin de procédure. en mettant XlPart.
    Denis

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Relis donc s'il te plait ma toute première réponse
    Puis ouvre ton aide VBA Interne à la rubrique Range.Find, méthode et lis.
    Tu y verras entre autre ceci, qui corrobore ce que je t'ai conseillé :
    Remarques


    Cette méthode renvoie Nothing si aucune correspondance n'est trouvée. La méthode Find n'affecte pas la sélection ni la cellule active.

    Les paramètres des arguments RechercherDans, Regarder, OrdreRecherche et RespecterNbreOctets sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucune valeur pour ces arguments lors du prochain appel à la méthode, les valeurs enregistrées sont utilisées. Le fait de définir ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments explicitement chaque fois que vous utilisez cette méthode.
    Voilà.

  7. #7
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Je suis désolé de vous paraitre si lourd.

    J'ai bien compris que dans mes procédures à moi, je dois gérer les paramètres du .find à chaque utilisation.

    Les macros sont lancés par des utilisateurs qui voient leurs paramètres à eux affectés par la commande .find.
    Il faut donc en fin de procédure reinistialiser le paramétrage de l'utilisateur.

    Pour être tout à fait correct il faudrait lire le paramétrage courant de la fonction .find de l'utilisateur, la sauvegarder faire tourner la procédure et remettre les paramètres initiaux.

    Je clos le sujet, car je pensais ma question simple et ne suscitant pas un aussi large débat.
    j'en suis navré, car c'est un point mineur par rapport à d'autres questions.

    en tous cas merci pour vos réponses.
    Denis

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    L'équipe Microsoft Ofice a conçu ainsi sa méthode de recherches pour satisfaire le plus grand nombre et ne pas obliger à redéfinir tout lorsque des recherches successives utilisaient les mêmes arguments (cas le plus fréquent).
    S'y serait-elle prise autrement, que d'autres auraient manifesté un mécontentement différent du tien.. Les goûts et les couleurs ne se discutent pas.

    Rien n'empêche qui que ce soit de se "fabriquer" sa propre boîte de dialogue (un userform faisant l'affaire) où l'utilisateur pourrait choisir ses options.

    J'appelle par ailleurs ton attention sur le fait qu'une telle boîte de dialogue est déjà offerte aux utilisateurs par Excel (Accueil -->> Rechercher et sélectionner -->> Rechercher --->> Options)
    Si ce déploiement de fenêtres successives ne plait pas -->> relire ce que j'ai mis en gras -->> un userform où on met tout à la fois).

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu me parle comme si jetais sourd! Tu me répète la même chose mais en parlant plus fort!

    Tu veux vider le formulaire de recherche? Tu veux décocher un option? Que veux tu exactement? Demander à Microsoft de cogiter çà?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    En fait,et c'était là le sens de ma question, tu veux mémoriser l'état du formulaire de recherche pour la restituer après ta macro!

    Je ne sais pas si c'est possible!


    Ce débat n'aurait pas ue lieu si tu avais été plus explicite!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/12/2008, 16h22
  2. Comment fonctionne la fonction find en perl
    Par lavm01 dans le forum Langage
    Réponses: 2
    Dernier message: 10/01/2008, 17h28
  3. [SQL] comment "desactiver" une fonction php dans une page?
    Par horas dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2007, 15h04
  4. [C++ .NET] Comment utiliser fonction Find ?
    Par thecrax dans le forum Framework .NET
    Réponses: 3
    Dernier message: 17/08/2006, 09h02
  5. Comment faire un Timer de fonction PORTABLE ?
    Par dieuP1guin dans le forum C
    Réponses: 3
    Dernier message: 04/07/2003, 10h44

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