Extraire une chaine de caractère excel

Résolu
yiye Messages postés 4 Statut Membre -  
chossette9 Messages postés 6855 Statut Contributeur -
Bonjour,

Dans EXCEL, je souhaite extraire la data qui se trouve dans le nom d'une cellule, dont voici des exemples:
aaaaaaaaaaa.download.aaaaaa.com/21060/.../20101115_aaaaaaaaaaa_high_en_cutqna.wmv
aaaaaaaaaaa.download.aaaaaa.com/21060/20110519/20110519_aaaaaaaaaaa_high_en.wmv
aaaaaaaaaaa.download.aaaaaa.com/21060/20110729/20110729_aaaaaaaaaaa_high_en.wmv


Je voudrais en fait extraire la partie en gras et la mettre dans une autre colonne.
le soucis est que je ne peux pas utiliser la fonction STXT comme ça, étant donné que la position de la date varie selon le nom qu'il y a dans chaque cellule...

Pouvez-vous m'aider à trouver la formule adéquate svp?

Merci d'avance.

yiye
A voir également:

7 réponses

yiye Messages postés 4 Statut Membre
 
en fait je voudrais prendre les 8 chiffres suivant le 3ème " / "
0
pijaku Messages postés 13513 Statut Modérateur 2 763
 
Bonjour,

Tu pourras trouver ici une formule plus ou moins universelle.
Je l'ai adaptée à ton cas, ça donne :
Bien sur en A1 saisir : aaaaaaaaaaa.download.aaaaaa.com/21060/.../20101115_aaaaaaaaaaa_high_en_cutqna.wmv

La formule à inscrire en B1 (ou ailleurs...) :
=GAUCHE(STXT(A1;CHERCHE("|";SUBSTITUE(A1;"/";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"/";""))))+1;999);8)
0
yiye Messages postés 4 Statut Membre
 
Merci beaucoup
j'ai essayé votre formule: elle marche presque pour toutes les lignes mais il y a un bug sur certaines lignes comme par exemple :

aaaaaaaaaaa.download.aaaaaa.com/21060/20101005/aaaaa_2010_EN.wmv


je viens de voir que sur toutes les lignes, je souhaiterais avoir les 8 chiffres suivant le 3ème "/".
0
pijaku Messages postés 13513 Statut Modérateur 2 763
 
1- juste pour êter tout à fait exact ce n'est pas ma formule,
2- elle fonctionne selon la demande initiale.

je viens de voir que sur toutes les lignes, je souhaiterais avoir les 8 chiffres suivant le 3ème "/".
NON! Pas dans l'exemple que tu nous donnes ci-dessus :
aaaaaaaaaaa.download.aaaaaa.com/21060/20101005/aaaaa_2010_EN.wmv
....................
3- ce que tu souhaites faire est donc impossible par formule (1 fois après le 3ème "/", une fois après le second...)

Ne reste que VBA et une fonction personnalisée qui sera très lourde si tu as de nombreuses lignes à traiter.
Ou alors utilises la formule donnée plus haut et rectifies les quelques lignes ou elle ne fonctionne pas...
0

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

Posez votre question
yiye Messages postés 4 Statut Membre
 
Oui vous avez raison.
je vais faire comme vous me le conseillez il n'y en a pas tant que ça :)

Merci beaucoup à vous
0
pijaku Messages postés 13513 Statut Modérateur 2 763
 
Bon t'as de la chance, j'y suis parvenu sans trop farfouiller...
Pour info, voici les sources :
- Tuto de Caféine
- Post et code de Michel_M


Procédure :
- Depuis la feuille de calcul Excel tapez ALT+F11
- Outils/Références, cocher : Microsoft VBScript Regular Expressions 5.5
- Puis Insertion/Module
- Dans ce module copiez/collez ce code :
Function Extraire8Chiffres(texto As Range)
Dim reg As Object
Dim extraction As Object
Dim maj As Variant

    Set reg = CreateObject("vbscript.regexp")
    reg.Global = False
    reg.Pattern = "(\d{8})"
    Set extraction = reg.Execute(texto)
    For Each maj In extraction
        Extraire8Chiffres = maj.Value
    Next maj
End Function

- Fermez Visual Basic Editor pour revenir dans votre feuille de calcul,
- La formule devient donc maintenant :
=Extraire8Chiffres(A1)
0
tontong Messages postés 2584 Statut Membre 1 062
 
Bonjour à tous,
La difficulté réside toujours dans la recherche d'un élément constant et sans ambiguité.
Si "/201" répond à ces critères on peut utiliser:
=STXT(A2;CHERCHE("/201";A2;1)+1;8)
0
pijaku Messages postés 13513 Statut Modérateur 2 763
 
Salut,
Bien vu tontong!
Je n'avais effectivement pas regardé ça de près...

Mais bon s'il a des films de 1999...
0
chossette9 Messages postés 6855 Statut Contributeur 1 311
 
ou même des années 2000...
0