Chercher un texte dans variable avant et après le tiret

Bonjour à tous,

Je n'arrive pas à trouver la solution pour chercher un texte dans variable avant et après le tiret

Exemple j'ai :

chaine = "forum.excel-pratique.com"

je voudrais récupérer d'un coté : A=forum.excel

et de l'autre : B=pratique.com

J'avais essayé

FormateV = Left(chaine, InStr(chaine, "-") - 1)
FormateT = Right(chaine, InStr(chaine, "-"))

Mais pour le FormateT il me donne : l.pratique.com

Merci pour votre aide

Je viens de m'apercevoir qu'avec l'exemple que j'ai donné ça marche mais pas avec ma variable

S55878-Mavariable

Tant que j'y suis , il peut y avoir deux tirets dans la même variable et je prend en compte que le premier

S55878-Ma-variable

J'aimerais récuperer

1) S55878

2) Ma-variable

Bonjour

Essaie

FormateT = Right(chaine, Len(chaine) - InStr(chaine, "-"))

Bye !

Bigreee chercher chercher chercher pas trouver .. et toi en 2 secondes la bonne solution

Mille merci gmb

Bonjour à tous,

Il est également possible d'utiliser la fonction Split qui divise en texte en fonction d'un séparateur et renvoie un tableau :

chaine = "forum.excel-pratique.com"
t = split(chaine, "-")
FormateV = t(0)
FormateT = t(1)

Cdlt,

Merci 3GB

C'est effectivement une bonne pratique

chaine = "forum.excel-pratique.com-Excellent-site"
t = Split(chaine, "-")
For X = 0 To 3
MsgBox t(X)
Next X

En effet, très bon exemple (excellent site^^ ).

Et vous pouvez même utiliser la fonction ubound() qui renvoie la taille du tableau, pas forcément connu à l'avance lorsqu'on split une chaine :

chaine = "forum.excel-pratique.com-Excellent-site"
t = Split(chaine, "-")
For X = 0 To ubound(t)
MsgBox t(X)
Next X

Ici, ubound(t) renvoie 3 car t est en base 0.

Cdlt,

Et je crois que l'on peut aussi remplacer le zero par autre chose

Exact, par lbound(t), la limite inférieure

Rechercher des sujets similaires à "chercher texte variable tiret"