Bonjour,
Voici une proposition avec une fonction personnalisée.
Il y a cependant quelques pré-requis :
- enregistrer le fichier au format .xlsm,
- activer le volet "Développeur" (si ce n'est pas déjà fait) : Volet "Fichier" / Options / Personnaliser le ruban > cocher "développeur",
- sur le volet "Développeur", ouvrir l'éditeur "Visual Basic" (raccourci Alt + F11),
- dans le menu "Outils"/ Références : sélectionner "Microsoft VBScript Regular Expressions 5.5",
- dans le menu contextuel "Insertion", sélectionner "Module",
- aller sur ce nouveau module et y copier le code :
Function EXTRACT_NUMBER(chaine As String, Optional Occurrence As Integer) As String
Dim ExpReg As REGEXP
Dim subdiv
Set ExpReg = CreateObject("vbscript.regexp")
With ExpReg
.Global = True
.Pattern = "\d+"
If .test(chaine) Then
Set subdiv = .Execute(chaine)
If subdiv.Count > 0 Then
If Occurrence = 0 Then Occurrence = 1
EXTRACT_NUMBER = subdiv(Occurrence - 1).Value
Else
EXTRACT_NUMBER = subdiv(0).Value
End If
End If
End With
End function
A saisir sur excel :
=EXTRACT_NUMBER(A1)
si l'extraction doit se réaliser sur A1.
Si, il y a plusieurs suites de nombres, il faut saisir :
=EXTRACT_NUMBER(A1;3)
Pour avoir la 3è suite de nombres dans A1.
Cdlt,