Extraire une chaine de caractères d'une cellule

Résolu/Fermé
FiberIDEA Messages postés 2 Date d'inscription vendredi 11 octobre 2013 Statut Membre Dernière intervention 12 octobre 2013 - 11 oct. 2013 à 19:06
FiberIDEA Messages postés 2 Date d'inscription vendredi 11 octobre 2013 Statut Membre Dernière intervention 12 octobre 2013 - 12 oct. 2013 à 16:22
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

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 oct. 2013 à 19:50
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 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 oct. 2013 à 19:55
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 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
11 oct. 2013 à 20:08
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 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 oct. 2013 à 20:18
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 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
11 oct. 2013 à 19:14
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 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
11 oct. 2013 à 19:33
Bonsoir
avec :
=STXT(A1;TROUVE("A";A1);5)
crdlmnt
0
FiberIDEA Messages postés 2 Date d'inscription vendredi 11 octobre 2013 Statut Membre Dernière intervention 12 octobre 2013
12 oct. 2013 à 16:22
Merci à tous, c'est nickel.
J'ai utilisé finalement la formule de Vaucluse qui conserve le "A" dans la réponse
Cdlt
0