Extraire une chaine de caractère

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 !

sganarelle

XLDnaute Nouveau
Bonjour,😛

J'ai un petit problème pour sur excel concernant l'extraction d'une chaine de caractère. J'ai essayé plusieurs formules, différents codes mais rien n'y fait 😡 . Sur la colonne A nommée "Perimeter" se trouve des chaines de caractères trop longues. Celles qui m'interessent commencent par MARK et sont les plus longues, et ce sont celles ci que je veux extraire sur la colonne B sans les caractères suivant le "-" à la fin.

Par exemple,

-sur la ligne 6, j'ai :GBIS -> MARK -> MARK/SOL -> MARK/SOL/COM -> MARK/SOL/COM/EXF -> MARK/SOL/COM/EXF/ITA -> MARK/SOL/COM/EXF/ITA - ITALY043 . Ce que je veux extraire sur la seconde colonne est MARK/SOL/COM/EXF/ITA
-sur la ligne 5, j'ai : GBIS -> MARK -> MARK/ASI . Ce que je veux extraire est MARK/ASI
et ainsi de suite.

Ca peut se faire soit par vba soit par formule dans une cellule, les deux me vont. 😕

En pièce jointe le fichier excel.

A l'âme charitable qui m'aidera, je la remercie beaucoup.
 

Pièces jointes

Dernière édition:
Re : Extraire une chaine de caractère

Bonjour et bienvenue.

Ton problème ne semble pas simple au vu de l'exemple (attention à modifier ton fichier car je pense que les noms ne sont pas "bidon" ..écris plutôt titi,toto...)

a+
 
Re : Extraire une chaine de caractère

Bonjour.

Cette Function perso peut être :
VB:
Function DernMARKSlh(Z As String) As String
Dim Spl() As String
Spl = Split(Z, "MARK/")
DernMARKSlh = "MARK/" & Split(Spl(UBound(Spl)))(0)
End Function
Code:
=DernMARKSlh($C4)
Quoique celui là, justement, donne "MARK/GBIS" à mon léger étonnement avant d'en avoir compris le mécanisme évident, mais comme tous vos exemples comportaient "MARK/", on peut faire ce qu'on veut pour quand ça n'y est pas ?…
 
Dernière édition:
Re : Extraire une chaine de caractère

Merci beaucoup Dranreb, c'est presque parfait. Ta fonction marche pour toutes les lignes sauf pour les lignes où on a: GBIS -> MARK. Si on execute la fonction, on obtient : MARK/GBIS alors que le résultat voulu ici serait MARK tout simplement 😕
 
Re : Extraire une chaine de caractère

VB:
Function DernMARKSlh(Z As String) As String
Dim Spl() As String
Spl = Split(Z, "MARK/")
DernMARKSlh = "MARK" & IIf(UBound(Spl) > 0, "/" & Split(Spl(UBound(Spl)))(0), "")
End Function
Pour la ligne 14, il y a un élément "/TRD/" qui apparait, mais plus dans le dernier terme.

Edit: Erreur corrigée : IIf(UBound(Spl) > 0 au lieu de > 1.
Et vu avant moi, quoique indépendamment 😛
 
Dernière édition:
- 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
3
Affichages
469
Retour