Ce code coupe une chaine de caractères en plusieurs lignes et en faisant attention de ne pas couper en plein milieu d'un mot.
On définit la taille de la ligne voulue, et la fonction découpe en autant de lignes que nécessaire.
Cette fonction a servi à faire la césure d'un texte qui devait être imprimé sur un ticket de caisse (largeur 42 caractères).
Source / Exemple :
Public Function Césure(ByVal texte As String, ByVal taillecésure As Integer) As String
Dim posespace As Integer
Dim textimp As String
While (Len(texte) > taillecésure)
'Vérifier si la césure ne se fait pas juste avant l'espace (apres un mot entier) :
If Mid(texte, taillecésure + 1, 1) = " " Then
'si c'est le cas , ne pas chercher d'espace
posespace = taillecésure
Else
'sinon, chercher un espace AVANT le mot en cours
posespace = InStrRev(Left(texte, taillecésure), " ") - 1
End If
'ajouter le texte tronqué à la sortie de la fonction
textimp = textimp & Left(texte, posespace) & vbCrLf
'tronquer le texte et recommencer la boucle
texte = Mid(Trim(texte), posespace + 2)
Wend
'ajouter le restant du texte
textimp = textimp & texte
'retourner le resultat de la fonction
Césure = textimp
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.