XL 2016 Comment extraire une série de lettre et chiffre qui peuvent varier (H1H1H1)

MaDaoust

XLDnaute Nouveau
Bonjour,

J'aimerais savoir s'il est possible d'extraire une série de lettre et chiffre, qui peuvent varier et ce qui vient après, dans une cellule texte. Cette série est disposée de cette façon (H0H0H0) lettre, chiffre, lettre, chiffre, lettre et chiffre. De plus, ils ne sont toujours situé au même endroit dans cette cellule et sont variable. J'ai environ 200 lignes a traiter et c'est un peu long de la faire à la main. Si vous pouviez m'aider svp.

Voici des exemples:

200 Rue de la plage Montréal J7K0L1 Mme Sable 555-555-5555 = J7K0L1 Mme Sable 555-555-5555
1890 Chemin de l'orage Ville H0H0H0 555-555-1234 = H0H0H0 555-555-1234


La solution peut être vba ou en formule

Merci de votre aide

Marc-André
 

patricktoulon

XLDnaute Barbatruc
ok donc a partir de la dernière a0a0a0

fonction
VB:
Function REGEXO(CEL As String)
    Dim matchs
    REGEXO = "nofound!!"
    With CreateObject("VBScript.RegExp"):
        .Global = True: .IgnoreCase = True: .Pattern = "\s(\D{1})(\d{1})(\D{1})(\d{1})(\D{1})(\d{1})"
        Set matchs = .Execute(CEL)
         If matchs.Count > 0 Then REGEXO = Mid(CEL, InStrRev(CEL, matchs(matchs.Count - 1)))
         End With
End Function

formule de base
=REGEXO(A1)

tu a cette version aussi

VB:
Function REGEXO(CEL As String)
    Dim matchs, X
    REGEXO = "nofound!!"
    With CreateObject("VBScript.RegExp"):
        .Global = True: .IgnoreCase = True: .Pattern = "\s(\D{1})(\d{1})(\D{1})(\d{1})(\D{1})(\d{1})"
        Set matchs = .Execute(CEL)
        Debug.Print "occurences " & matchs.Count
        If matchs.Count > 0 Then
                 X = Split(CEL, matchs(matchs.Count - 1))
                 REGEXO = matchs(matchs.Count - 1) & " " & X(UBound(X))
             'REGEXO = Mid(CEL, InStrRev(CEL, matchs(matchs.Count - 1)))
        End If
    End With
End Function
 
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA