Xieme occurence, extract 4

Résolu/Fermé
jlito - 21 sept. 2009 à 15:50
 jlito - 22 sept. 2009 à 16:22
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
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
21 sept. 2009 à 16:33
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
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
22 sept. 2009 à 09:59
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
Michel,
merci beaucoup pour votre aide.

Cela fonctionne à merveille !

Bonne fin de semaine
Cordialement
John
0