Extraire une date d'une chaine de caractères

Résolu
K0rell Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 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 !


A voir également:

6 réponses

K0rell Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   1
 
Impeccable merci beaucoup !
Bonne journée et bon courage à tous.
2
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
K0rell Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
K0rell Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   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