Extraire une chaine de caractères d'une cellule

Résolu
FiberIDEA Messages postés 2 Statut Membre -  
FiberIDEA Messages postés 2 Statut Membre -
Bonjour

J'ai une liste de cellules comportant des chiffres et lettres ( exemple: 125A0341-1310 )

Toutes les cellules ont une lettre "A"
J'ai besoin d'extraire la lettre "A" et les 4 chiffres qui sont à sa droite (ici A0341)

Quelqu'un peux-t-il m'aider ?

Merci

4 réponses

  1. Atropa Messages postés 2051 Statut Membre 274
     
    Bonsoir,

    avec une expression régulière et un peu de vba :

    VBA
    Function extract(txt As String, pattern As String) As String
    With CreateObject("VBScript.RegExp")
    .pattern = pattern
    .IgnoreCase = True
    extract = .Execute(txt)(0)
    End With
    End Function

    et ensuite pour ta cellule cible (si B6 est ta cellule source par exemple)
    =extract(B6;"A[0-9]{4}")

    si tu comptes utiliser ça uniquement avec ce pattern tu peux utiliser ça :
    Function extract(txt As String) As String
    With CreateObject("VBScript.RegExp")
    .pattern = "A[0-9]{4}"
    .IgnoreCase = True
    extract = .Execute(txt)(0)
    End With
    End Function
    et ça dans ta cellule cible
    =extract(B6)

    mais la première fonction est plus souple
    3
    1. Atropa Messages postés 2051 Statut Membre 274
       
      Si le A n'est pas toujours un A tu peux modifier le pattern de cette façon : [A-Z][0-9]{4}
      0
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonsoir Atropa
      peut être un peu beaucoup pour pas grand chose, non? et de plus pas à la portée du commun des mortels.
      crdlmnt
      0
    3. Atropa Messages postés 2051 Statut Membre 274
       
      ouais mais c'est tellement souple et puissant. et puis ça peut servir pour plein d'autre choses
      par exemple si la lettre A n'est pas dans toutes les références ça évite plein de manipulation inutile

      Je n'ai jamais vraiment utilisé excel et j'ai été étonné de voir qu'il n'y ai pas de fonction expression régulière directement dedans.

      mais sinon ça ne fait qu'une petite fonction à ajouter et c'est tellement plus confortable que des fonctions imbriquées.

      En plus ça pourra lui servir à l'avenir de connaitre ça. Ca simplifie beaucoup de chose.
      0
  2. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Avec cette formule pour mon exemple les données sont en A7

    =DROITE(GAUCHE(A7;CHERCHE("-";A7;1)-1);5)
    0
  3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir
    avec :
    =STXT(A1;TROUVE("A";A1);5)
    crdlmnt
    0
  4. FiberIDEA Messages postés 2 Statut Membre
     
    Merci à tous, c'est nickel.
    J'ai utilisé finalement la formule de Vaucluse qui conserve le "A" dans la réponse
    Cdlt
    0