Extraire une chaine de caractère excel

Résolu
yiye Messages postés 4 Statut Membre -  
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   -
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

7 réponses

  1. yiye Messages postés 4 Statut Membre
     
    en fait je voudrais prendre les 8 chiffres suivant le 3ème " / "
    0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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
  3. 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
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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
  8. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Salut,
      Bien vu tontong!
      Je n'avais effectivement pas regardé ça de près...

      Mais bon s'il a des films de 1999...
      0
    2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      ou même des années 2000...
      0