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
A voir également:

4 réponses

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
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
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 442
 
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
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
PHILOU10120 Messages postés 6511 Date d'inscription   Statut Contributeur Dernière intervention   825
 
Bonjour

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

=DROITE(GAUCHE(A7;CHERCHE("-";A7;1)-1);5)
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 442
 
Bonsoir
avec :
=STXT(A1;TROUVE("A";A1);5)
crdlmnt
0
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