Découpe d'un texte avec une certaine longueur (césure, mise à la ligne automatique)

Contenu du snippet

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

A voir également

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.