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 :

PB Regex VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Sans emploi
    Inscrit en
    Septembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Septembre 2017
    Messages : 18
    Par défaut PB Regex VBA
    Bonjour à tous ,

    J'ai à extraire la date de cette ligne ( excel 2000) Expressions Regulieres

    Semaine du 06-10-2017

    J'ai essayé plusieurs motifs mais sans resultas , la variable me retourne : Semaine du 06-10-

    2017

    Je vous demande un petit coup de main SVP!

    Merci d'avance pour vos reponses

    Cordialement

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Si c'est toujours "semaine du xx-xx-xxxx" tel que tu nous présente la chaîne, tu peux utiliser deux solutions sans regex

    Solution en extrayant la date par la droite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      source = "semaine du 12-04-2017"
      Target = Right(source, 10)
      TargetDate = DateSerial(Right(Target, 4), Mid(Target, 4, 2), Left(Target, 2))
    Solution en remplaçant la partie fixe par une chaine vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      source = "semaine du 12-04-2017"
      Target = Replace(expression:=source, Find:="semaine du ", Replace:="", compare:=vbTextCompare)
      TargetDate = DateSerial(Right(Target, 4), Mid(Target, 4, 2), Left(Target, 2))
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Comme le précise Pierre, si ta chaîne est toujours construite de la même façon, tu peux utiliser la fonction Split():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Test()
     
        Dim Chaine As String
        Dim LaDate As Date
     
        Chaine = "Semaine du 06-10-2017"
        LaDate = CDate(Split(Chaine, " ")(2))
     
        MsgBox LaDate
     
    End Sub

  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
    ou par formule excel. Exemple -->> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DATEVAL(SUBSTITUE(A1;"Semaine du ";"";1))
    La cellule d'accueil devant bien entendu être formatée en date.

Discussions similaires

  1. [XL-2010] VBA Regex sur date et heure pour contrôler le format
    Par Bragu Demon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/02/2017, 11h47
  2. À la recherche d'un tutoriel pour regex pour VBA
    Par jpvba dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/02/2017, 12h43
  3. [WD-2007] [Résolu] Macro VBA complexe avec regex et tags à modifier dans tableau
    Par nicoladastra2 dans le forum VBA Word
    Réponses: 7
    Dernier message: 19/03/2014, 12h50
  4. Petite question de regex VBA
    Par guidav dans le forum Général VBA
    Réponses: 0
    Dernier message: 21/11/2011, 19h26
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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