Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Extraction de lettre

  • Initiateur de la discussion Initiateur de la discussion blancolie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

blancolie

XLDnaute Impliqué
Bonjour le forum,

Dans le fichier ci-dessous, j'aimerais obtenir ce résultat F-AGAUKUAM dans la cellule B4 à partir de ces mots AGASTACHE AURANTIACA KUDOS AMBROSIA et Fanfelle.

J'ai essaye avec cette formule :

Code:
GAUCHE(A1;1) & STXT(A1;CHERCHE(" ";A1)+1;1)

mais j'arrive pas à avoir le résultat escompté.

Cordialement
 

Pièces jointes

Bonjour,
Questions:
a. le texte contient minimum et maximum combien de mots
b. dans votre texte, il y a
> 2 espaces entre le premier et deuxième mot
> 2 espaces entre le 2ième et le 3ième mot
> 1 espace entre le 3ième et 4 dème mot

Très risqué!
 
Bonsour®
avec une fonction personnalisée (split)
 

Pièces jointes

Dernière édition:
bonjour
je rejoins Modeste geedee

dans un module
VB:
Function RefCode(valeur As String)
Dim t, I&,x$
t = Split(Application.Trim(valeur), " ")
For I = 0 To UBound(t): x = x & Left(t(I), 2): Next
RefCode = x
End Function
et dans la cellule B4 tu met
=SI(C4<>"";RefCode(C4);"")

et tu étends la formule vers le bas autant que besoins est


la particularité de cette fonction c'est que j'utilise application.trim pour régulariser le nombre d'espace a 1 entre chaque mots et supprime bien entendu les éventuels espace devant et après la chaîne complète
parti de là le left(part,2) de chaque item du split est concaténé dans la boucle sur "x"
et voila c'est plus simple 😉

et si tu veux la "D4" avec
=SI(C4<>"";RefCode(C4&" " &D4);"")
 
j'oubliais
si tu veux tout en allcaps (majuscule)
VB:
Function RefCode(valeur As String)
Dim t, I&
t = Split(Application.Trim(valeur), " ")
For I = 0 To UBound(t): x = x & Left(t(I), 2): Next
RefCode = UCase(x)
End Function
 
Bonjour à tous,

On prend les deux premiers caractères de chaque mot. On est limité à 4 mots. Il est aisé de de l'étendre à 5 mots voire plus.

Une formule matricielle en B4 à tirer vers le bas:
VB:
=MAJUSCULE("F-"
&  SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");1);2);"")
& SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");2);2);"")
& SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");3);2);"")
& SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");4);2);""))

 

Pièces jointes

Bonjour Surchat,

au maximum, il y a 5 mots, cela dépends des plantes. il y a juste un tiret entre F(Fanfelle) F qui va nous indiqué le fournisseur et pour les autres mots, pas d'espaces du tout.

J'ai vu que ta solution nécessité plusieurs étapes pour arriver au résultat final.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…