Function NomPropre2(ByVal Nom As String) As String
Dim TJn() As String, N As Integer, Orig As String, Maju As String, Minu As String, Exclu
TJn = Split(Replace(Replace(Nom, "'", "' "), "-", "- "), " ")
For N = 0 To UBound(TJn)
Orig = TJn(N): Maju = UCase(Orig): Minu = LCase(Orig)
If Len(Orig) < 2 Or Orig <> Maju Then
For Each Exclu In Array("à", "au", "bis", "d'", "de", "des", "du", _
"en", "et", "l'", "le", "la", "les", "ter", "sur")
If Exclu = Minu Then Exit For
Next Exclu
If IsEmpty(Exclu) Then Mid$(Minu, 1, 1) = Left$(Maju, 1)
TJn(N) = Minu: End If
Next N
If TJn(0) Like "#*" Then
Orig = TJn(1): Maju = UCase(Orig): Minu = LCase(Orig)
If Len(Orig) < 2 Or Orig <> Maju Then
For Each Exclu In Array("avenue", "boulevard", "chemin", "place", "rue", "sentier", "square", "voie")
If Exclu = Minu Then Exit For
Next Exclu
If IsEmpty(Exclu) Then Mid$(Minu, 1, 1) = Left$(Maju, 1)
TJn(1) = Minu: End If
End If
NomPropre2 = Replace(Replace(Join(TJn, " "), "- ", "-"), "' ", "'")
End Function