Extraire une date d'une chaine de caractères

Résolu
K0rell Messages postés 5 Statut Membre -  
via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon problème dans la cellule A je veux mettre une date.
Celle-ci est contenu dans la cellule B entre deux chaine de caractère elle a pour format dd/mm/yy

Exemple

ch dd/mm/yy ch

Si vous avez la fonction magique qui permet de faire cela merci ! J'ai regardé du cotée des expressions régulière mes sans grand résultat.

Le meus-te serais aussi de supprimer la date qui est entre les chaine de caractère.

Merci !

6 réponses

  1. K0rell Messages postés 5 Statut Membre 1
     
    Impeccable merci beaucoup !
    Bonne journée et bon courage à tous.
    2
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir,

    Si la date en B2 comporte bien 8 caracteres (6 chiffres et 2 /) on peut en récuperer la date ainsi :

    =DATE(STXT(B2;CHERCHE("/";B2)+4;2);STXT(B2;CHERCHE("/";B2)+1;2);STXT(B2;CHERCHE("/";B2)-2;2))

    donne une date en 19.... si les dates sont posterieures à 2000 il faut rajouter + 2000 dans la formule :
    =DATE(STXT(B2;CHERCHE("/";B2)+4;2)+2000;STXT(B2;CHERCHE("/";B2)+1;2);STXT(B2;CHERCHE("/";B2)-2;2))

    Pour enlever la date du texte :
    =GAUCHE(B2;CHERCHE("/";B2)-3)&DROITE(B2;(NBCAR(B2)-(CHERCHE("/";B2)+5)))

    Cela convient il ?

    Cdlmnt
    2
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    s'il n'y a pas de date alors il n'y a pas de / ?
    Il suffirait de mettre tester la présence du / avant d'extraire
    If InStr(1, Cells(2, 2), "/") >0 then
    madate = Mid(Cells(2, 2), InStr(1, Cells(2, 2), "/") - 2, 8)
    instruction pour placer la date en A
    End if
    1
  4. K0rell Messages postés 5 Statut Membre 1
     
    La première solution me convient mes peut tu me fournir l'équivalent de ceci en VBA je serais ravis car je comprend pas grand chose a la formule que me sort la macro automatique

    =DATE(STXT(B2;CHERCHE("/";B2)+4;2);STXT(B2;CHERCHE("/";B2)+1;2);STXT(B2;CHERCHE("/";B2)-2;2))

    Le bute et de remplacer B2 par une variable de type string.

    Merci et bon courage.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Si tu veux extraire de B2 la date sous forme de chaine de caractère cette ligne en VBA suffit :

    madate = Mid(Cells(2, 2), InStr(1, Cells(2, 2), "/") - 2, 8)

    qu'on peut traduire par Extraire(de B2 ,à partir de la position du caractere "/ " moins 2, extraire 8 caracteres)

    Tu peux declarer avant madate as String

    Cdlmt
    0
  7. K0rell Messages postés 5 Statut Membre 1
     
    ca marche impec sauf que dans certaine chaine de caractère il n'y a pas de date est ca plante. donc si tu pouvais adapter ca serais cool je continu a chercher merci c'est déjà supère ce que tu a fait.
    0