Extraction de caractère

thechoux Messages postés 25 Statut Membre -  
thechoux Messages postés 25 Statut Membre -
Bonjour à tous,

Etant débutant sur VBA, je rencontre quelques difficultés :

Dans la colonne J:J se trouve dans chaque cellule une chaine de caractère de type GRA-AAA-trucinutile.
Ce que je voudrais faire c'est extraire la chaine de caractère se situant entre les deux tirets et la copier dans la colonne E:E
Par exemple si dans les cellules J3 et J4 se trouve les chaines suivante : GRA-V-gnagnagna et GRA-Gr-gnagnafg je voudrais que dans les cellules E3 et E4 se copie respectivement V et Gr

Comment faire ?

Merci d'avance
A voir également:

3 réponses

Zoul67 Messages postés 2001 Statut Membre 149
 
Bonjour,

pos_tiret_gauche = InStr((ActiveCell.Value), "-")
pos_tiret_droit = Len(ActiveCell.Value) - InStr(StrReverse(ActiveCell.Value), "-") + 1
entre_les_tirets = Mid(ActiveCell.Value, pos_tiret_gauche + 1, pos_tiret_droit - pos_tiret_gauche - 1)
MsgBox entre_les_tirets


A+
0
Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

Avec la fonction Split(), comme par exemple:

Dim mtab

    mtab = Split(Range("J3").Value, "-")
    Range("E3").Value = mtab(1)

0
Zoul67 Messages postés 2001 Statut Membre 149
 
Re,

J'admets que Split est plus élégant.
Je complète la réponse en précisant qu'il faudrait que tu utilises une fonction personnalisée :
ex :
Function elt(valeur_en_J as String)
mtab = Split(valeur_en_J, "-")
elt = mtab(1)
End Function

et en E3 tu tapes =elt(J3)

A+
0
thechoux Messages postés 25 Statut Membre 1
 
Ça marche, j'ai compris le principe, merci beaucoup !
0