'Option Explicit
Sub test()
' Variable Ojet
Dim t As Range
Set t = Worksheets("Feuil1").Range(Cells(1, 1), Cells(1, 3))
' Pour Boucle
Dim i As Integer, j As Integer
' Tableau de découpage
Dim t1 As Variant
Dim TxtNet As String
' Pour test
'For i = 1 To 3
'MsgBox t.Cells(i, 1)
'Next i
For i = 1 To t.Count
t1 = Split(t.Cells(i, 1), " ")
For j = 0 To UBound(t1)
If j = 0 Then
TxtNet = UCase(Mid(t1(j), 1, 1)) & Right(t1(j), Len(t1(j)) - 1)
TxtNet = Trim(TxtNet)
TxtNet = Trim(t1(j))
ElseIf Not t1(j) Like "Hs" & "?" Then
TxtNet = TxtNet & " " & LCase(Mid(t1(j), 1, 1)) & Right(t1(j), Len(t1(j)) - 1)
TxtNet = Trim(TxtNet)
ElseIf t1(j) Like "Hs" & "?" Then
TxtNet = TxtNet & " " & UCase(Mid(t1(j), 1, 1)) & UCase(Mid(t1(j), 2, 2)) & Right(t1(j), Len(t1(j)) - 3)
TxtNet = Trim(TxtNet)
End If
Next j
' Sustitut les valeur d'origine par les modifiers directement
't.Cells(i, 1) = TxtNet
' Ici pour test je colle en C9/C10/C11
Cells(i + 8, 1) = TxtNet
TxtNet = Empty
Next i
' Ici pour lire les valeur d'origine
' dans une message box
'For i = 1 To 3
'MsgBox t.Cells(i, 1)
'Next i
' decharge les variables
i = Empty
j = Empty
TxtNet = Empty
' decharge les variables objets
Set t = Nothing
End Sub