Masque de saisie TextBox (renvoi à la ligne intelligent)

Bonjour,

Aujourd'hui je cherche à faire un masque de saisie pour un TextBox.

Ce que je souhaitais à la base, c'était de faire en sorte que ce TextBox aille automatiquement à la ligne tous les 30 caractères.

Cependant, en le testant, je découvris par la suite que ce n'était pas bien pratique car cela pouvait couper les mots par exemple :

blabla blabla blablabla blablab

a blabla

(Je sais, l'exemple est grossier)

Je souhaiterais donc ajouter une deuxième condition : saut à la ligne seulement après un espace.

La condition deviendrait donc :

Si "espace" ET >30 caractères Alors Aller à la ligne

Et le blabla précédent deviendrait :

blabla blabla blablabla blablablabla

blablabla blablabla blabla blabla

(En rouge c'est le texte qui était indésirablement à la ligne avec la méthode précédente)

Je n'ai pas de fichier particulier à mettre en pièce jointe pour réaliser ceci, j'ai juste besoin d'un bout de code.

Voilà j'espère avoir énoncé le problème clairement, merci d'avance pour votre aide.

Bonsoir,

Ci-joint un essai à tester ...

Joli chalenge ...

Bonne soirée

Bouben

39masquetextbox.xlsm (20.86 Ko)

Bonjour bouben,

Ce code est vraiment génial, c'est exactement ce que je recherchais, le challenge est (presque) totalement réussi.

Oui je dis presque car il y a un petit problème.

En effet, lorsque l'on écris un message dans le TextBox, tout fonctionne parfaitement. Mais lorsque l'on veut l'effacer, il y a un problème. Pour effacer la grande majorité des caractères il n'y a aucun soucis, mais lorsqu'on efface le dernier (le premier en fait, celui du tout début) il y a une erreur qui se produit dût à la formule:

sTexteFinal = sTexteFinal & Left(sTexteLigne, Len(sTexteLigne) - 1)

Ce que je peux comprendre car à ce moment Len(sTexteLigne) - 1 = - 1, cela créé donc une erreur avec Left.

Seulement, bien qu'ayant partiellement compris votre code, je ne vois pas vraiment comment corriger cette erreur sans altérer le bon fonctionnement de celui-ci.

(L'erreur ne se créé par quand le TextBox est vide à la base car le code ne s'exécute que lorsque ce premier change, alors que lorsque l'on supprime le dernier caractère on revient à un TextBox vide, mais le code s'exécute à cause du changement lié à la suppression)

J'en reviens donc, encore, à solliciter votre aide pour ce petit point noir qui entrave le fonctionnement (presque) parfait de votre code!

Merci

Bonsoir,

Merci du retour positif !

Ci-joint une nouvelle version à tester, avec un petit test complémentaire pour gérer ce bug

Bonne soirée

Bouben

Excellent ! Rien à dire ça marche tip-top !

Merci beaucoup c'est génial !

J'ai mis ce post en "résolu", grâce à toi, bonne journée et à un prochain problème Excel !

EDIT : Arf, il y a encore un dernier problème !

Vu que le saut de ligne est géré automatiquement, le saut de ligne manuel ne fonctionne pas.

Dans l'idéal, il faudrait que le saut de ligne soit pris en compte par le TextBox. Et là je pense que ce sera vraiment parfait.

Argh, cela devient plus compliqué ... Il faut revoir le principe pour trouver une autre solution

Pas de piste pour l'instant

Bonne journée

Bouben

Rechercher des sujets similaires à "masque saisie textbox renvoi ligne intelligent"