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

2 réponses

  1. 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
    1. Raymond PENTIER Messages postés 58229 Date d'inscription   Statut Contributeur Dernière intervention   17 494
       
      ... et je pense que c'est l'unique moyen !
      0
    2. 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
      1. Raymond PENTIER Messages postés 58229 Date d'inscription   Statut Contributeur Dernière intervention   17 494 > sebii
         
        Une solution est d'utiliser la fonction RECHERCHEH ... https://www.cjoint.com/c/FGwnOd7jMdO
        Mais Fahora en a certainement une autre !
        0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. sebii
       
      Merci Eriiic ca fonctionne parfaitement :))))))

      Merci a tous pour vos propositions !
      0
    2. 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
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    4. 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
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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