Function CEP(Cellule As Range) As String
Dim S As String
Dim k As Integer
S = CStr(Cellule.Value)
k = InStrRev(S, "(")
If k > 0 Then S = Mid(S, k + 1)
For k = 1 To Len(S)
If Not (Mid(S, k, 1) >= "0" And Mid(S, k, 1) <= "9") Then Exit For
Next k
CEP = Left(S, k - 1)
End Function
=SI(DROITE(A2;1)<>")";"";SUPPRESPACE(SUBSTITUE(SUBSTITUE(DROITE(SUBSTITUE(A2;" ";REPT(" ";255));255);"(";"");")";"")))
=SIERREUR(GAUCHE(SI(DROITE(A2;1)<>")";"";SUPPRESPACE(SUBSTITUE(SUBSTITUE(DROITE(SUBSTITUE(SI(DROITE(A2;1)<>")";"";SUPPRESPACE(SUBSTITUE(SUBSTITUE(DROITE(SUBSTITUE(A2;" ";REPT(" ";255));255);"(";"");")";"")));" ";REPT(" ";255));255);"(";"");")";"")));EQUIV(99;SIERREUR(1*STXT(SI(DROITE(A2;1)<>")";"";SUPPRESPACE(SUBSTITUE(SUBSTITUE(DROITE(SUBSTITUE(A2;" ";REPT(" ";255));255);"(";"");")";"")));COLONNE($A:$ZZ);1);"")));"")
si je me fis a la demande initiale c'est à dire concerver toutes les chaines numériqueBonjour,
je cherche un moyen de ne conserver que les chiffres situé à l'intérieur d'une cellule (quelque soit l'endroit)
ou
comment ne conserver que les caractères qui se trouvent à l'intérieur des parenthèses
ex : MONT-BLANC/LEMAN F+18 à X (20232420010159RST) ou R C LAPALISSOIS (5826H)
dans ces deux exemples je souhaiterai qu'il ne conserve que 20232420010159 et 5826
merci pour votre retour
cordialement
alain
Sub test2()
Dim cc As String
cc = "toto mange(533 bannanes pas ans) et (422 kiwy) et detemps en temps (mais pas ouvent une 10 aines de grenade)"
MsgBox GetNumericChain(cc)
End Sub
Function GetNumericChain(txt As String, Optional A& = 1) As String
Dim b As Long, c$, d$: Static chain As String
If A = 1 Then chain = ""
A = InStr(A, txt, "(")
If A > 0 Then
b = InStr(A + 1, txt, ")")
c = Trim(Mid(txt, A + 1, (b - A) - 1))
For i = 1 To Len(c)
If IsNumeric(Mid(c, i, 1)) Then d = d & Mid(c, i, 1)
Next
If Val(d) > 0 Then chain = chain & d & " "
GetNumericChain txt, b
End If
GetNumericChain = Trim(chain)
End Function
Function ChiffresEntrePar(ByVal x As String) As String
Dim i&, c, r
If Not x Like "*(*)*" Then Exit Function
x = Split(x, "(")(UBound(Split(x, "(")))
If x = "" Then Exit Function
For i = 1 To Len(x): c = Mid(x, i, 1): r = r & IIf(c Like "#", c, ""): Next
ChiffresEntrePar = r
End Function