Xieme occurence, extract 4

Résolu
jlito -  
 jlito -
Bonjour,

Je recherche une formule Excel pour extraire 4 caractères de droite tjs après le 6ieme "@".

Dans ce cas, la formule doit extraire "0550"

@14@22@/14@@9@0550@/9@@12@04@/12@@13@6418@/13@@2@@/2@@4@@/4@@15@@/15@

Pouvez-vous m'aider ?

Merci
Configuration: Windows XP Internet Explorer 7.0

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    essaies cette fonction personnalisée

    Function extraire_mot(texto As String, separateur As String, seuil As Byte, nbre As Byte) As String
    Dim mot As String
    Dim tablo
        tablo = Split(texto, separateur)
        mot = tablo(seuil)
        If Len(mot) > 4 Then
            mot = Right(mot, nbre)
        End If
        extraire_mot = mot
    End Function
    


    Dans laquelle texto est ton texte, séparateur est ici l'arobase, seuil est ici 6 et nbre est ici 4.

    Si tu ne connais pas VBAou les macros, dis le, on t'expliquera comment installer
    0
    1. jlito
       
      Merci Michel,

      Effectivement, je n'y connais rien en vba.
      J'ai fait un clic droit sur l'onglet concerné > visualiser le code...

      J'ai ensuite collé ton script.

      Comment ton script sait-il sur quelle donnée il doit travailler et où est stockée la chaîne de caractère extraite après le sixième "@" ?


      John
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour
    il faut copier cette fonction dans un module
    pour cela
    Alt+F11 t'emmène dans l'éditeur VBA
    insertion-module
    coller

    ensuite insertion -fonction -personnalisées...

    la fonction proposée te laisse le choix du séparateur, du n-nième séparateur et le nombre de caractères à droite que tu désires
    mais si tu as TOUJOURS le sixième @ et les 4 caractères de droite, on peut simplifier la fonction comme ceci

    Function extraire_mot(texto As String) As String
    Dim mot As String
    Dim tablo
        tablo = Split(texto, "@")
        mot = tablo(6)
        If Len(mot) > 4 Then
            mot = Right(mot, 4)
        End If
        extraire_mot = mot
    End Function
    


    texto représente le texte dans la celllule: une fois la fonction demandée, tu cliques dans la cellule
    0
  3. jlito
     
    Michel,
    merci beaucoup pour votre aide.

    Cela fonctionne à merveille !

    Bonne fin de semaine
    Cordialement
    John
    0