Trouver la première lettre d'un mot d'une phrase

Résolu
sebii -  
 Sebii -
Bonjour,

Je appel à votre expertise sur excel pour m'aider car étant excsessivement nul :)

J'aimerai savoir s'il existe une formule permettant de trouver la première lettre d'un mot positionné a un endroit précis dans un texte séparé par un point virgule.

Exemple :

Texte :
;Il;était;une;fois;dans;louest;américain

=> Rechercher la première lettre du mot numero 4
Résultat : F

L'idée est de renseigner une série de position dans différentes cellules et d'en faire ressortir en dessous la première lettre du mot correspondant.

D'avance merci beaucoup pour votre aide.

Seb
A voir également:

2 réponses

Fahora Messages postés 949 Statut Membre 68
 
Bonjour,

Le seul moyen que je vois pour le moment :

https://www.cjoint.com/c/FGwmJzLgk3H

A toi de voir si ca te convient.

cdlt
0
Raymond PENTIER Messages postés 71821 Statut Contributeur 17 376
 
... et je pense que c'est l'unique moyen !
0
sebii
 
Merci Fahora
Le résultat attendu renvoi bien la valeur recherchée du texte.
Par contre est-il possible de ne pas spécifier de rajouter le nombre précédent dans la formule indiqué ici en +E2 ?

=TROUVE(";";$A$2;TROUVE(";";$A$2)+E2)

Car cela m'oblige a connaitre le nombre précédent. Or dans mon cas j'ai besoin de rentrer des chiffres qui ne se suivent pas et qui doivent faire ressortir la lettre dans le texte.
Exemple :
8 95 34 2 12 etc...

Merci beaucoup !!!
0
Raymond PENTIER Messages postés 71821 Statut Contributeur 17 376 > sebii
 
Une solution est d'utiliser la fonction RECHERCHEH ... https://www.cjoint.com/c/FGwnOd7jMdO
Mais Fahora en a certainement une autre !
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

avec une fonction personnalisée : https://www.cjoint.com/c/FGwo2mJfSSZ
vu que je découpe la phrase avec le séparateur pour moi "il" est le 2ème mot.
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
sebii
 
Merci Eriiic ca fonctionne parfaitement :))))))

Merci a tous pour vos propositions !
0
Sebii
 
Bonjour Eric,
Désolé de te solliciter une nouvelle fois, j'aimerai savoir s'il est possible de faire une petite modif de ta fonction pour rechercher la 2ieme ou 3ieme lettre de chaque mot ?
J'ai essayé de rajouter des +1 ou +2 un peu partout mais sans succès... Je ne suis décidement pas fait pour le code...

If position > UBound(tmp) Then initialeMot = "" Else initialeMot = UCase(Left(tmp(position - 1), 1))

Merci beaucoup

Seb
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

ajout d'un paramètre.
Syntaxe :
=lettreMot(phrase; nomMot; numLettre)
ou
=lettreMot(phrase; nomMot; numLettre; sep)
Function lettreMot(phrase As String, nomMot As Long, numLettre As Long, Optional sep As String = ";") As String
    Dim tmp
    tmp = Split(phrase, sep)
    If nomMot > UBound(tmp) Then
        lettreMot = ""
    Else
        If Len(tmp(nomMot - 1)) < numLettre Then
            lettreMot = ""
        Else
            lettreMot = UCase(Mid(tmp(nomMot - 1), numLettre, 1))
        End If
    End If
End Function

eric
0
Sebii
 
Merci beaucoup Eric pour ton coup de main :)

J'ai copié la fonction dans le code mais à chaque fois le résultat me renvoi une valeur vide....

Je ne sais pas si jai bien renseigné la cellule :

A2 : ABC DEF GHI JKL LMN OPQ RST UVW (phrase test)
C1 : 3
Séparateur : reste l'espace

=lettreMot($A2;C1;1)

Résultat attendu H

Ai-je bien renseigné la syntaxe ?

Merci.
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
1) Syntaxe :
=lettreMot(phrase; nomMot; numLettre)
Si tu mets 1 pour numLettre il te retournera l'initiale.

2) j'avais mis ton séparateur ";" par défaut. Si tu le changes il faut lui indiquer dans le 4ème paramètre (optionnel) ou bien le changer dans la fonction :
=lettreMot($A2;C1;3;" ")
0