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.
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...)
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 ?…
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
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