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 :

Rechercher un contenu dans une variable [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut Rechercher un contenu dans une variable
    Bonjour,

    Je souhaite vérifier si le contenu d'un textbox ou d'une variable contient un mot.
    Mes recherches m'ont permis de trouver la fonction "like"

    J'ai monté un programme test afin de comprendre son utilisation mais il semble que je sache pas l'utiliser.

    Ce programme me réponds toujours faux ?????

    Pouvez vous m'éclairer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub test()
     
    Dim test As String
    Dim result As Boolean
    Dim result1 As Single
     
    test = "le bonjour j'aime le revolver"
    result = test Like "le"
    result1 = test Like "le"
    MsgBox test & " : " & result & " - " & result1
    If test Like "le" Then
        MsgBox "vrai"
    Else
        MsgBox "faux"
    End If
     
     
    End Sub
    merci pour votre aide,

  2. #2
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut ET ZUT LA REPONSE VIENT D ARRIVER
    Il fallait rajouter 2 "*" dans le contenu du mot à chercher :
    Je l'ai trouvé dans un exemple qui m'a intrigué.

    Par contre la condition ne fonctionne pas car elle reste toujours fausse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub test()
     
    Dim test As String
    Dim result As Boolean
    Dim result1 As Single
     
    test = "le bonjour j'aime le revolver"
    result = test Like "*le*"
    result1 = test Like "*le*"
    MsgBox test & " : " & result & " - " & result1
    If test Like "le" Then
        MsgBox "vrai"
    Else
        MsgBox "faux"
    End If
     
     
    End Sub
    DONC ce code fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub test()
     
    Dim test As String
    Dim result As Boolean
     
    test = "bonjour j'aime  revolver"
    result = test Like "*le*"
    MsgBox test & " : " & result
    If result = True Then
        MsgBox "vrai"
    Else
        MsgBox "faux"
    End If
     
     
    End Sub
    Les explications sont très peu claire sur cette fonction !!!!!!
    Cela aidera peut être quelqu'un d'autre dans l'avenir qui aura chercher comme moi !!

    merci

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    La page suivante donne un certain nombre d'exemple pour comprendre la fonction : https://msdn.microsoft.com/fr-fr/library/swf8kaxw.aspx

  4. #4
    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
    1) je ne vois pas en quoi :
    Les explications sont très peu claire sur cette fonction !!!!!!
    Elles m'ont toujours paru très claires et ce : depuis mes tous premiers pas en VB
    2) il ne faut pas abuser gratuitement de l'opérateur Like, là où suffit une simple utilisation de la fonction Instr (elle également exposée de manière claire dans l'aide VBA)

  5. #5
    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
    Citation Envoyé par unparia Voir le message
    il ne faut pas abuser gratuitement de l'opérateur Like, là où suffit une simple utilisation de la fonction Instr (elle également exposée de manière claire dans l'aide VBA)
    Bonjour,

    cette remarque, comme toute tes remarques, n'est pas anodine, et m'interpelle.

    tu fais ici allusion aux ressources mobilisées par Like par rapport à Instr (et donc du temps d'exécution) ou plutôt à une fiabilité plus grande de Instr si on ne sait pas correctement utiliser Like par rapport au contexte du projet (notamment si on évalue mal le type et les combinaisons de valeurs qu'on va analyser) ?

  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
    Bonjour joe.levrai
    Je ne fais là allusion qu'à la vitesse d'exécution. Instr est plus léger que Like
    Petit test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    chaine = "voila une chaîne de caractères"
    sous_chaine = "cha"
    Dim deb As Single
    deb = Timer
    For i = 1 To 1000000
      toto = InStr(chaine, sous_chaine)
    Next
    MsgBox Timer - deb
     
    deb = Timer
    For i = 1 To 1000000
      toto = chaine Like "*" & sous_chaine & "*"
    Next
    MsgBox Timer - deb
    Amitiés

    La principale raison de cette différence de vitesse d'exécution est à rechercher dans toute la boîte d'outils que transporte avec lui l'opérateur Like (tous les cas de figure). C'est un peu le même genre de cause qui fait qu'utiliser par exemple FSO revient à "transporter" dans sa "valise" tout ce dont FSO a besoin.

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

Discussions similaires

  1. Executer 1 script contenu dans une variable PHP
    Par emstar dans le forum Langage
    Réponses: 5
    Dernier message: 19/04/2006, 11h48
  2. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 15h56
  3. [DEBUTANT]Recherche mot contenu dans une String
    Par lynxman dans le forum Langage
    Réponses: 7
    Dernier message: 16/12/2005, 11h49
  4. Condition contenu dans une variable string
    Par tomo0013 dans le forum Access
    Réponses: 6
    Dernier message: 01/12/2005, 14h15
  5. Réponses: 7
    Dernier message: 25/10/2005, 15h19

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