Recuperer les n derniers mots d'une chaine de caractere

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 !

Pascalou333

XLDnaute Nouveau
Bonjour,

J'ai un fichier qui contient toutes les dépenses des employés de ma boite, dont une cellule qui contient la description de la dépense et le nom de l'employé. Afin de faire un tableau de suivi, j'ai besoin d'isoler le nom de l'employé dans une case, et celui de la dépense dans une autre. Of course, y'a jamais le même nombre de caractères dans chaque cellule, je ne peux donc pas utiliser la fonction qui permet de séparer une cellule en 2.

J'ai également essayé à peu près toutes les combinaisons possibles avec les fonctions right, left, mid et len, et je n'arrive qu'à récupérer le dernier mot, mais pas les 2 derniers mots (qui seraient par exemple le nom et le prénom de l'employé).

Par exemple, dans la cellule A1, j'ai "Déplacement avion Robert Bidochon", je veux avec la formule que je recherche avoir en B1 "Déplacement avion" et en C1 "Robert Bidochon".

Est-ce possible sans avoir à monter une usine à gaz?

Idéalement, je voudrais avoir une formule qui me permet de récupérer les n derniers mots de la chaîne.

Merci par avance pour votre aide!
Pascalou
 
Re : Recuperer les n derniers mots d'une chaine de caractere

Salut Pascalou333,

Je pense qu'il te faut d'abord une BdD de tous les noms !

Une petite fonction en VBA

Ensuite grace à cette liste et cette fonction tu peux retrouver l'emplacement du nom dans le texte de dépense 😉

Voir le fichier joint, fonction dans Module1

A+😀

Edit : Oups, salut Sylvain
 

Pièces jointes

Re : Recuperer les n derniers mots d'une chaine de caractere

Bonjour à tous les intervenants de ce fil,

A défaut d'une formule, fonction ci dessous pour récupérer les n (nbre_mots) derniers mots d'une cellule

Code:
Function extraire_droite(cellule As Range, nbre_mots As Byte)
Dim tablo() As String
Dim nbre As Byte

tablo = Split(cellule, " ")
For nbre = UBound(tablo) - (nbre_mots - 1) To UBound(tablo)
    extraire_droite = extraire_droite & tablo(nbre) & " "
Next

End Function
A+
 
- 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

Réponses
19
Affichages
472
Réponses
17
Affichages
469
Réponses
4
Affichages
223
Réponses
5
Affichages
120
Retour