Textbox : espace insécable pendant la saisie
Résolu
GrandJean
-
GrandJean -
GrandJean -
Bonjour à tous,
Je souhaite pouvoir insérer un espace insécable lors de la saisie dans une textbox.
J'ai bien trouvé le code chr(160) mais je n'arrive pas à l'intégrer lors de la saisie.
La méthode m'intéresse car j'aimerais aussi pouvoir intégrer une puce, par exemple chr(149), en cours de saisie.
Je n'ai pas trouvé de solutions sur les forums et mes différentes tentatives...
Bref, je sollicite votre aide et vous en remercie par avance
Jean
Je souhaite pouvoir insérer un espace insécable lors de la saisie dans une textbox.
J'ai bien trouvé le code chr(160) mais je n'arrive pas à l'intégrer lors de la saisie.
La méthode m'intéresse car j'aimerais aussi pouvoir intégrer une puce, par exemple chr(149), en cours de saisie.
Je n'ai pas trouvé de solutions sur les forums et mes différentes tentatives...
Bref, je sollicite votre aide et vous en remercie par avance
Jean
A voir également:
- Espace insécable google doc
- Comment concatener plusieurs textbox ✓ - Forum Excel
- Colorer textbox sélectionné ✓ - Forum VB / VBA
- Focus TextBox WPF ✓ - Forum C#
- Erreur sur isdate textbox ✓ - Forum VB / VBA
- Vba textbox date format dd/mm/yyyy ✓ - Forum Excel
6 réponses
Bonjour,
tout depend ou vous voulez mettre ces caracteres, si devant la sasie:
ex:
x = Chr(149) & Chr(160) & TextBox1
tout depend ou vous voulez mettre ces caracteres, si devant la sasie:
ex:
x = Chr(149) & Chr(160) & TextBox1
Bonjour,
En VB ou en VBA ?
C'est surprenant d'avoir besoin spécifiquement d'une espace insécable...
Si tu veux remplacer automatiquement un caractère par un autre lors de la saisie (ou empêcher la saisie de certains caractères), utilise les codes ASCII dans la procédure :
A+
En VB ou en VBA ?
C'est surprenant d'avoir besoin spécifiquement d'une espace insécable...
Si tu veux remplacer automatiquement un caractère par un autre lors de la saisie (ou empêcher la saisie de certains caractères), utilise les codes ASCII dans la procédure :
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
A+
Merci à tous les deux d'avoir répondu aussi rapidement.
C'est bien en cours de frappe que je veux pouvoir utiliser ces caractères. Si ma phrase se termine par un ?, j'ai besoin d'un espace insécable pour éviter que, lors de l'utilisation du contenu dans un autre formulaire, le ? se retrouve tout seul sur une nouvelle ligne.
J'ai bien essayé avec keypress, sans succès. Je ne trouve pas le rapprochement entre chr() et keyAscii. Pardon si je m'exprime mal.
J'espère que vous aurez une piste.
C'est bien en cours de frappe que je veux pouvoir utiliser ces caractères. Si ma phrase se termine par un ?, j'ai besoin d'un espace insécable pour éviter que, lors de l'utilisation du contenu dans un autre formulaire, le ? se retrouve tout seul sur une nouvelle ligne.
J'ai bien essayé avec keypress, sans succès. Je ne trouve pas le rapprochement entre chr() et keyAscii. Pardon si je m'exprime mal.
J'espère que vous aurez une piste.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un exemple pour ajouter un espace insécable avant le ? :
(adapter le code à ton besoin ; celui-ci permet d'empêcher la saisie de caractère non désirés)
(adapter le code à ton besoin ; celui-ci permet d'empêcher la saisie de caractère non désirés)
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 63 TextBox1.Value = TextBox1.Value & Chr(160) Case 97 To 122 ' Caracteres alpha min Case 65 To 90 'Caracteres alpha Maj Case 8 'Retour Chariot Case Else KeyAscii = 0 End Select End Sub
Super.
J'ai essayé ta solution qui fonctionne très bien. Merci beaucoup.
Par contre, si elle fonctionne bien en création d'un nouveau texte, en mode correction cela ne va plus : si je reviens sur le texte et que je veuille mettre un ?, avec le select case, mon ? se retrouve en dernier caractère.
J'ai donc remplacé le select case par :
TB_1 = Replace(TB_1, " ?", Chr(160) & "?") 'pour l'espace insécable
TB_1 = Replace(TB_1, "*", Chr(149)) 'pour la puce
Là, je peux mettre mon caractère où nécessaire. Le curseur se place, cependant, en fin de texte. Mais ce n'est pas très grave.
J'aurais préféré un raccourci clavier (comme ctrl / Enter pour aller à la ligne). Je n'ai pas trouvé.
Encore merci
Jean
J'ai essayé ta solution qui fonctionne très bien. Merci beaucoup.
Par contre, si elle fonctionne bien en création d'un nouveau texte, en mode correction cela ne va plus : si je reviens sur le texte et que je veuille mettre un ?, avec le select case, mon ? se retrouve en dernier caractère.
J'ai donc remplacé le select case par :
TB_1 = Replace(TB_1, " ?", Chr(160) & "?") 'pour l'espace insécable
TB_1 = Replace(TB_1, "*", Chr(149)) 'pour la puce
Là, je peux mettre mon caractère où nécessaire. Le curseur se place, cependant, en fin de texte. Mais ce n'est pas très grave.
J'aurais préféré un raccourci clavier (comme ctrl / Enter pour aller à la ligne). Je n'ai pas trouvé.
Encore merci
Jean