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 :

Equivalent CTRL F


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut Equivalent CTRL F
    Bonjour,

    Dans le code qui suit :
    Je souhaite rechercher un nom dans une colonne qui en contient environ 500.
    1- Bien que j'ai sélectionné cette colonne (ceux qui haïssent les "select" vont me détester), il me semble que la recherche se fait également au delà de la sélection ! Comment puis-je corriger le problème ?
    2- Si, dans la fenêtre qui s'ouvre, je ne mets que quelques lettres, le résultat renverra tous les noms comprenant ces quelques lettres, qu'elles soient au début ou au milieu des noms (dans ce dernier cas, ça ne m'arrange pas !). Peut-on avoir une recherche qui s'effectue uniquement sur le début des noms ?
    Je vous remercie par avance pour votre aide.
    Cdt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Target.Address = "$Q$22" Then  
          Range("C26:C500").Select
          Application.Dialogs(xlDialogFormulaFind).Show
          ActiveCell.Offset(0, 5).Select
    End If

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Fais une recherche sur Find
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Recherche as range
    Set Recherche = Columns("C").Find(MaValeur, LookIn:=xlValues, LookAt:=xlWhole)
    If Not Recherche is nothing then
       'La valeur a été trouvée
       Msgbox Recherche.Address
    end if
    Ici, j'ai mis une colonne (C), mais c'aurait pu être une plage quelconque
    Il y a aussi différents paramètres que tu peux regarder dans l'aide selon tes besoins.
    xlWhole pourrait être xlPart si la valeur est une partie de ce qui est écrit dans la cellule.

    Il y a aussi FindNext

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la fonction FIND effectue ça correctement

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
        ' on recherche en C26:C500 la valeur écrite en Q22
        If Target.Address = "$Q$22" Then
            Set recherche = Range("C25", "C500").Find(Target.Value, , , xlWhole)
            If Not recherche Is Nothing Then
                MsgBox recherche.Address  ' adresse du résultat
            Else
                MsgBox "Aucun résultat"
            End If
        End If
    End Sub
    Cet exemple recherche la valeur complète de la cellule (argument xlWhole) et pas une portion de la valeur de la cellule (argument xlPart)
    Seul le premier résultat est retourné ==> il existe une seconde fonction FindNext (regarde aussi l'aide) qui te permettra de récupérer tous les résultats


    regarde attentivement l'aide (), car il est nécessaire de toujours paramétrer les arguments de cette fonction
    (à défaut, VBA prendra les dernières paramètres utilisés quand tu as fait un CTLR+F)


    EDIT : parmi a été le plus rapide ... on a proposé Les mêmeS choseS

Discussions similaires

  1. Macro - Equivalent CTRL H - rechercher remplacer
    Par kahmsin-f dans le forum Macros Access
    Réponses: 5
    Dernier message: 28/09/2013, 22h04
  2. Equivalent Ctrl+F I.E
    Par JimJames23 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/06/2010, 12h25
  3. [IDE VS2005]Equivalent [VC6]Ctrl+E en VS2005
    Par hal9000 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 29/10/2007, 11h31
  4. Equivalent à "[ctrl]-c q" de emacs sous vim.
    Par valefor dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/07/2007, 18h17
  5. Signal équivalent de ctrl + C
    Par Empty_body dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 08/11/2006, 15h04

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