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 :

Action suivant la chaine de caractères trouvée


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Action suivant la chaine de caractères trouvée
    Bonjour,

    Je souhaite effectuer diffrentes actions en fonction de la chaine de caractères (chaine1, chaine2, chaine3... jusqu'à chaine7) que je trouve dans une autre chaîne de caractères (chaine). Comment puis-je faire ça simplement ? Le select case est-il utilisable dans ce cas ?

    J'essaierai bien ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If instr(chaine, chaine1) <> 0 then
    ...
    Else
    If instr(chaine, chaine2) <> 0 then
    ...
    Else
    If instr(chanie, chaine3) <> 0 then
    ...
    end if
    end if
    end if
    Quelqu'un aurait-il une méthode moins contraignante ?

    Merci

  2. #2
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette réponse rapide.

    J'ai mal préciser un point : la chaîne de caractère que je recherche (chaine1, chaine2...) est comprise dans l'autre chaine (chaine). C'est pour ça que dans mon exemple j'utilise le Instr.

    Le select case peut-il tout de même fonctionner ?

  3. #3
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour dcogez et bienvenu,
    juste pour info les conditions if se structure comme suit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If instr(chaine, chaine1) <> 0 then
    ...
    ElseIf instr(chaine, chaine2) <> 0 then
    ...
    ElseIf instr(chaine, chaine3) <> 0 then
    ...
    end if
    Cordialement

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par dcogez Voir le message
    Merci pour cette réponse rapide.

    J'ai mal préciser un point : la chaîne de caractère que je recherche (chaine1, chaine2...) est comprise dans l'autre chaine (chaine). C'est pour ça que dans mon exemple j'utilise le Instr.

    Le select case peut-il tout de même fonctionner ?
    Non, si Chaine n'est qu'une partie de l'une ou l'autre chaîne (ce que j'avais shunté ).
    La syntaxe proposée par Fred me paraît plus adaptée

    Edit
    Il serait d'ailleurs intéressant de savoir ce que tu fais si instr(chaine, chaine1) est vrai.
    Et puis fais gaffe, dcogez, tu as mis Chanie dans le dernier test

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci.
    Je ne connaissais pas le ElseIf.

  6. #6
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re
    je pense que tu veux ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Chaine As String
    Dim Chaine1 As String
    Dim Chaine2 As String
    Dim Chaine3 As String
    Chaine = "Il fait beau aujourd'hui"
    Chaine1 = "Il"
    Chaine2 = "fait"
    Chaine3 = "beau"
    If InStr(Chaine, Chaine1) <> 0 Then MsgBox Chaine1 & " est dans " & Chaine
    If InStr(Chaine, Chaine2) <> 0 Then MsgBox Chaine2 & " est dans " & Chaine
    If InStr(Chaine, Chaine3) <> 0 Then MsgBox Chaine3 & " est dans " & Chaine
    End Sub
    @+

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    s'il y en a 7 à vérifier, il ne serait pas idiot de faire quelque chose du genre :

    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
    Option Explicit
    Private Sub Command1_Click()
     Dim Chaine As String, i As Integer, alors As String
     Chaine = "Il fait beau aujourd'hui"
     Dim meschaines
     meschaines = Array("Il", "nounours", "fait", "coquin", "blabla", "beau", "pipeau") 
     For i = 0 To UBound(meschaines)
       alors = meschaines(i)
       MsgBox alors & " ===>>" & est_il_la(Chaine, alors)
     Next
    End Sub
     
    Private Function est_il_la(texte As String, quoi As String) As Boolean
      est_il_la = InStr(texte, quoi)
    End Function

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2012, 11h23
  2. Réponses: 11
    Dernier message: 10/02/2009, 09h31
  3. Réponses: 6
    Dernier message: 18/03/2008, 11h57
  4. Tester si un mot se trouve dans un chaine de caractére
    Par koKoTis dans le forum VBScript
    Réponses: 6
    Dernier message: 14/01/2008, 20h23
  5. Réponses: 6
    Dernier message: 15/04/2007, 13h06

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