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

3 réponses

  1. 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
  2. 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
  3. 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
    1. thechoux Messages postés 25 Statut Membre 1
       
      Ça marche, j'ai compris le principe, merci beaucoup !
      0