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
| Function Convmaj1car()
Dim chaine$, lg%, i%, extract, conv
'
chaine$ = Screen.ActiveControl
If IsNull(chaine) Or chaine = "" Then Exit Function
lg% = Len(chaine)
' Recherche "-", apostrophe ou espace
For i = 1 To lg
extract = Mid(chaine, i, 1)
'
If extract = " " Or extract = "-" Or extract = "'" Then
conv = False
If i < lg - 3 Then
'test si préposition
extract = (UCase(Mid(chaine, i + 1, 2)))
Select Case extract
Case "L'", "D'"
i = i + 1
End Select
'
extract = (UCase(Mid(chaine, i + 1, 3)))
Select Case extract
Case "DE ", "DE-", "DES", "DU ", "DU-", "LE ", "LE-", "LES", "LA ", "LA-", "L' ", "AU ", "RUE", Chr$(68) + Chr$(39)
i = i + 2
Case Else
conv = True
End Select
Else
conv = True
End If
' si pas de préposition, 1ère lettre en majuscule
If i <> lg And conv Then
chaine = Left(chaine, i) + UCase(Mid(chaine, i + 1, 1)) + Right(chaine, lg - i - 1)
End If
If i = lg Then
chaine = Left(chaine, lg - 1) + LCase(Right(chaine, 1))
End If
End If
'
Next
Screen.ActiveControl = UCase(Left(chaine, 1)) & Right(chaine, lg - 1)
End Function |
Partager