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 :

fin alternative pour la matrice du pattern( expression rationnelle)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut fin alternative pour la matrice du pattern( expression rationnelle)
    bonjour a tous
    j'ai cherché partout cru souvent trouvé mais non alors une fois n'est pas coutume je pose la question

    comment coder la matrice du pattern a fin de récupérer la chaine souhaitée en fonction de deux texte quasi identique a une nuance pret
    l'un avec "train" l'autre avec "car"

    la matrice est celle ci: "toto +(\D*)train" ou "car" pour l'autre

    je voudrais pouvoir coder "train" ou "car" par un crochet ou parentheze alternative qui fonctionnerait pour les 2
    est ce possible ce que je veux récupérer ce qui est est en rouge dans les deux phrases
    je précise que je ne peut pas utiliser les operateur \D* [a-z] car dans les vrai exemples de phrase(confidentielles)se sont la lettre "à" et le symbole"-"

    alors je sais c'est tordu mais c'est moi


    voila mes deux textes

    texte = "la semaine prochaine toto part en colonie avec son ecole en car de nuit "

    texte = "demain toto part au sport avec son ecole par le train de nuit "

    voila les 2 subs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test1()
    Dim texte As String
    texte = "toto part en colonie avec son ecole en car "
    ou = chainevalide(texte, "toto +(\D*)car")(0)
    MsgBox ou
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub test2()
    texte = "toto part au sport avec son ecole par le  train"
    ou = chainevalide(texte, "toto +(\D*)train")(0)     
    msgbox ou
    End Sub
    voila la fonction qui fonctionne tres bien utilisant l'object VBScript.RegExp

    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
    Function chainevalide(txt As String, matrice) As Variant
        Dim Matches
        With CreateObject("VBScript.RegExp")
            .Global = True
            .Pattern = matrice
            .IgnoreCase = True
            Set Matches = .Execute(txt)
            ReDim tablo(Matches.Count): i = 0
            For Each Match In Matches
                tablo(i) = Match.Value
                i = i + 1
            Next
        End With
        chainevalide = tablo
    End Function
    allez ca fait une heure que je plombe dessus j'ai mal au crane ayez pitié
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bon ben voila j'ai trouvé tout seul

    on remplce car ou traint par "[train/car]" le slash permettant la bascule
    j'ai pourtant cherché mais je n'avais pas trouvé

    mille excuse pour le dérangement
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Demande de collaboration pour FAQ matrices et quaternions
    Par Laurent Gomila dans le forum Contribuez
    Réponses: 9
    Dernier message: 28/08/2006, 16h34
  2. aide pour expression réguliere
    Par guiillaume63 dans le forum Langage
    Réponses: 11
    Dernier message: 23/06/2006, 21h15
  3. [RegEx] expression réguliere - exclure un mot d'un pattern
    Par Matth_S dans le forum Langage
    Réponses: 6
    Dernier message: 22/06/2006, 13h53
  4. Boucle sans fin : danger pour le serveur ?
    Par Rémiz dans le forum Langage
    Réponses: 4
    Dernier message: 09/12/2005, 16h52
  5. [débutant] 2 alternatives pour un même bouton
    Par pacha1 dans le forum Composants
    Réponses: 5
    Dernier message: 25/06/2004, 11h13

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