Extraire une chaine de caractères d'une cellule [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
vendredi 11 octobre 2013
Statut
Membre
Dernière intervention
12 octobre 2013
-
Messages postés
2
Date d'inscription
vendredi 11 octobre 2013
Statut
Membre
Dernière intervention
12 octobre 2013
-
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

Messages postés
1935
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
257
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
1935
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
257
Si le A n'est pas toujours un A tu peux modifier le pattern de cette façon : [A-Z][0-9]{4}
Messages postés
25372
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
5 522
Bonsoir Atropa
peut être un peu beaucoup pour pas grand chose, non? et de plus pas à la portée du commun des mortels.
crdlmnt
Messages postés
1935
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
257
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.
Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
497
Bonjour

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

=DROITE(GAUCHE(A7;CHERCHE("-";A7;1)-1);5)
Messages postés
25372
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
5 522
Bonsoir
avec :
=STXT(A1;TROUVE("A";A1);5)
crdlmnt
Messages postés
2
Date d'inscription
vendredi 11 octobre 2013
Statut
Membre
Dernière intervention
12 octobre 2013

Merci à tous, c'est nickel.
J'ai utilisé finalement la formule de Vaucluse qui conserve le "A" dans la réponse
Cdlt