1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| Function fVoieSansNum(ByVal Voie As String) As String
'Cette fonction reconnait les doubles numéros _
's'ils sont séparés par un tiret, une virgule ou une esperluette _
'avec ou sans espaces.
'Cette fonction peut être utilisée seule ou en
'complément de la fonction fNomVoie
Dim str As String
Dim bte As Byte, bteFinNum As Byte
Voie = Replace(Voie, ",", "")
str = Left$(Voie, 1)
If Not IsNumeric(str) Then
fVoieSansNum = Voie
Else
bte = 1
Do
If IsNumeric(str) Then
bteFinNum = bte
Do
bte = bte + 1
str = Mid$(Voie, bte, 1)
Loop Until str <> " "
Else
Select Case str
Case "-", "&"
Do
bte = bte + 1
str = Mid$(Voie, bte, 1)
Loop While str = " "
If Not IsNumeric(str) Then
Exit Do
End If
Case "b"
If Mid$(Voie, bte, 3) = "bis" Then
Select Case Mid$(Voie, bte + 3, 1)
Case " "
bte = bte + 3
bteFinNum = bte
Do
bte = bte + 1
str = Mid$(Voie, bte, 1)
Loop While str = " "
Case "-", "&"
bte = bte + 3
str = Mid$(Voie, bte, 1)
Case Else
Exit Do
End Select
Else
Select Case Mid$(Voie, bte + 1, 1)
Case " "
bte = bte + 1
bteFinNum = bte
Do
bte = bte + 1
str = Mid$(Voie, bte, 1)
Loop While str = " "
Case "-", "&"
bte = bte + 1
str = Mid$(Voie, bte, 1)
Case Else
'Fin du numéro
Exit Do
End Select
End If
Case Else
'Fin du numéro
Exit Do
End Select
End If
Loop
fVoieSansNum = Trim$(Right$(Voie, Len(Voie) - bteFinNum))
End If
End Function |
Partager