Extraire une date d'une chaine de caractères [Résolu/Fermé]

Signaler
Messages postés
5
Date d'inscription
mardi 12 février 2013
Statut
Membre
Dernière intervention
16 février 2013
-
Messages postés
12761
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
14 octobre 2020
-
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

Messages postés
5
Date d'inscription
mardi 12 février 2013
Statut
Membre
Dernière intervention
16 février 2013
2
Impeccable merci beaucoup !
Bonne journée et bon courage à tous.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
12761
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
14 octobre 2020
2 042
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
Messages postés
12761
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
14 octobre 2020
2 042
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
Messages postés
5
Date d'inscription
mardi 12 février 2013
Statut
Membre
Dernière intervention
16 février 2013
2
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.
Messages postés
12761
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
14 octobre 2020
2 042
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
Messages postés
5
Date d'inscription
mardi 12 février 2013
Statut
Membre
Dernière intervention
16 février 2013
2
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.