Extraction de caractère

thechoux Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
thechoux Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
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 1959 Date d'inscription   Statut Membre Dernière intervention   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 6917 Date d'inscription   Statut Membre Dernière intervention   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 1959 Date d'inscription   Statut Membre Dernière intervention   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 24 Date d'inscription   Statut Membre Dernière intervention   1
 
Ça marche, j'ai compris le principe, merci beaucoup !
0