Extraction de caractère

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

  • Votes
  • Date
  • Date décroissante
  1. 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+
    1. Bonjour,

      Avec la fonction Split(), comme par exemple:

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

      1. 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+
        1. Ça marche, j'ai compris le principe, merci beaucoup !