Extraire une partie du texte d'une cellule

Fab117

XLDnaute Impliqué
Re-salut,
Dans une cellule, j'ai un texte du type "Créé(e) le 18 mars 2010 par Fab".
D'une fois à l'autre, la seule chose qui change est la date.
Et c'est justement la date qui m'intéresse et que je souhaiterais mettre dans une variable.
Pour l'instant mon idée est
1. de passer par une transformation du texte en colonne en utilisant l'espace comme séparateur
2. de concaténer les 3 cellules contenant les informations sur la date
3. de changer le format en format date

Quelqu'un aurait-il une proposition plus simple ?

Si non, quelqu'un pourrait-il me dire comment transformer le résultat de la concaténation en date ?

Merci d'avance.

Fab
 

pierrejean

XLDnaute Barbatruc
Re : Extraire une partie du texte d'une cellule

bonjour Fab117

Un essai (suppose la constance parfaite de tout ce qui n'est pas la date)

Arf! tres en retard moi
et toujours pietre es formules

Salut Tibo
 

Pièces jointes

  • Fab117.zip
    6.8 KB · Affichages: 166
  • Fab117.zip
    6.8 KB · Affichages: 164
  • Fab117.zip
    6.8 KB · Affichages: 148

mth

XLDnaute Barbatruc
Re : Extraire une partie du texte d'une cellule

Bonjour Fab117,

Essaie avec cette formule, si ta donnée est en A1 ( cellule au format date):

Code:
=STXT(A1;CHERCHE("le ";A1)+3;CHERCHE("par";A1)-CHERCHE("le ";A1)-4)*1

@ +

mth

Edit: Et bling ... à la fois désolée pour la collision, et en même temps bien contente de vous croiser tous les deux :) :)
Bises Tibo et PierreJean, sans oublier toutes mes amitiés à Dany :)
m
 
Dernière édition:

Fab117

XLDnaute Impliqué
Re : Extraire une partie du texte d'une cellule

Salut,
Avec du retard, merci pour vos réponses.

J'ai essayé vos propositions. Lorsque je les utilises dirctement dans l'onglet, ça marche, mais quand j'essaye de l'appliquer dans ma macro, ça ne fonctionne plus.
J'ai d'abord essayé :
DateDEmissionNonFormatee=DATEVALUE(SUBSTITUTE((SUBSTITUTE(A5;"Émis(e) le ";""));" par Fab";""))
Puis
DateDEmissionNonFormatee=DATEVALUE(SUBSTITUTE((SUBSTITUTE(Range"A5";"Émis(e) le ";""));" par Fab";""))

Fab
 

pierrejean

XLDnaute Barbatruc
Re : Extraire une partie du texte d'une cellule

Re

bises a mth :)
poignée de main a Tibo :)

En Vba tu peux t'inspirer de ceci

Code:
Sub test()
DateDEmissionNonFormatee = Replace(Replace(Range("A1"), "Créé(e) le ", ""), " par Fab", "")
MsgBox (DateDEmissionNonFormatee)
DateDEmission = CDate(DateDEmissionNonFormatee)
MsgBox (DateDEmission)
End Sub
 

cri732

XLDnaute Nouveau
Re : Extraire une partie du texte d'une cellule

Bonjour à tous,

Ci-joint un exemple de tableau.
Dans ce classeur, j'ai la cellule A1 qui contient une adresse - très longue - vers un dossier.
En A2, je compte le nombre de caractères qu'il y a dans la cellule A1.
Le début ("\\fraix01fs01\") est toujours le même, donc pas à prendre en compte.
Après les 14 caractères ci-dessus, je voudrais sélectionner le texte suivant jusqu'au prochain "\" inclus et le copier en A3.
A partir de ce nouveau point, je voudrais sélectionner le texte suivant jusqu'au prochain "\" inclus et le copier en A4.
Et ce jusqu'à la fin de l'adresse.
Cet exercice est faisable sur une ligne en utilisant la fonction "stxt", mais mon problème est que j'ai tout un tas d'autres lignes (nb non connu pour l'heure) à traiter de la même façon, sachant que les adresses ne sont jamais de même longueur.

Ma question est : comment pourrais-je faire ceci en vba?

Je vous remercie beaucoup par avance pour votre aide car voilà quelques temps que je recherche une solution.
 

Pièces jointes

  • Classeur1.xlsx
    9.8 KB · Affichages: 104
  • Classeur1.xlsx
    9.8 KB · Affichages: 91
  • Classeur1.xlsx
    9.8 KB · Affichages: 84

job75

XLDnaute Barbatruc
Re : Extraire une partie du texte d'une cellule

Bonjour cri732, bonjour les ami(e)s de 2010,

Je pense que vous mélangez lignes et colonnes mais peu importe...

Voyez le fichier joint avec cette fonction VBA dans un module standard :

Code:
Function Decoupe$(t$, ordre%)
Dim s
s = Split(Mid(t, 15), "\")
If ordre - 1 > UBound(s) Then Exit Function
Decoupe = s(ordre - 1)
If ordre - 1 < UBound(s) Then Decoupe = Decoupe & "\"
End Function
Formule en A2 à tirer vers le bas :

Code:
=Decoupe(A$1;LIGNE()-1)
Si au lieu d'une disposition en colonne A vous la voulez en ligne 1 il vous sera facile d'adapter.

Je préfère ma disposition car ainsi on voit chaque texte intégralement.

A+
 

Pièces jointes

  • Classeur(1).xlsm
    16.2 KB · Affichages: 83
  • Classeur(1).xlsm
    16.2 KB · Affichages: 85
  • Classeur(1).xlsm
    16.2 KB · Affichages: 91

cri732

XLDnaute Nouveau
Re : Extraire une partie du texte d'une cellule

Bonjour Job75,

Merci beaucoup pour cette solution.
Elle marche au top.
Je l'ai modifiée car je n'ai pas le choix de la disposition sur la ligne 1.
Mais en tout cas, merci beaucoup car cela faisait un moment que j'étais bloqué sur ce problème.

A bientôt.
 

job75

XLDnaute Barbatruc
Re : Extraire une partie du texte d'une cellule

Re,

Si l'on est allergique au VBA on peut le faire par formules.

Ce nest pas très compliqué avec une colonne auxiliaire, voyez le fichier joint.

A+
 

Pièces jointes

  • Classeur par formule(1).xlsx
    10.5 KB · Affichages: 118
Dernière édition:

Discussions similaires