Function couperPhrase(Phrase As String, Optional LongueurCoupure As Single = 25)
Const Separateur As String = "-" & vbLf 'Tiret et saut de ligne
Dim i As Integer, cpt As Integer
Dim lgPhrase As Integer
Dim Morceau As String, reste As String
lgPhrase = Len(Phrase)
If lgPhrase <= LongueurCoupure Then Exit Function
reste = Phrase
Phrase = ""
Do While Len(reste) > LongueurCoupure + 1
'On extrait un morceau de la pharse à la longueur voulue+1 caratère
Morceau = Left(reste, LongueurCoupure + 1)
'La boucle for va chercher le premier espace en partant de la fin
'du morceau
For i = Len(Morceau) To 1 Step -1
If Mid(Morceau, i, 1) = " " Then
Morceau = Left(Morceau, i - 1)
Exit For
End If
Next i
'Retenir le reste de la phrase à découper
reste = Trim(Right(reste, Len(reste) - Len(Morceau)))
'construire le resultat avec le séparteur
Phrase = Phrase & Morceau & Separateur
Loop
If Len(reste) > 0 Then
'S'il reste un morceau < à la longueur en sortie de boucle on le rajoute
'Sans séparateur
Phrase = Phrase & reste
Else
'Sinon on enlève le séparateur final
Phrase = Left(Phrase, Len(Phrase) - Len(Separateur))
End If
couperPhrase = Phrase
End Function