Non-breaking space during input
Solved
GrandJean
-
GrandJean -
GrandJean -
Hello everyone,
I want to be able to insert a non-breaking space while typing in a textbox.
I found the code chr(160) but I can't figure out how to integrate it while typing.
This method interests me because I would also like to be able to integrate a bullet point, for example chr(149), while typing.
I haven't found any solutions on the forums and my various attempts...
In short, I'm asking for your help and thank you in advance
Jean
Configuration: Windows XP / Chrome 32.0.1700.107
I want to be able to insert a non-breaking space while typing in a textbox.
I found the code chr(160) but I can't figure out how to integrate it while typing.
This method interests me because I would also like to be able to integrate a bullet point, for example chr(149), while typing.
I haven't found any solutions on the forums and my various attempts...
In short, I'm asking for your help and thank you in advance
Jean
Configuration: Windows XP / Chrome 32.0.1700.107
6 réponses
Hello,
it all depends on where you want to put these characters, if before the input:
for example:
x = Chr(149) & Chr(160) & TextBox1
it all depends on where you want to put these characters, if before the input:
for example:
x = Chr(149) & Chr(160) & TextBox1
Hello,
In VB or VBA?
It's surprising to specifically need a non-breaking space...
If you want to automatically replace a character with another during input (or prevent the entry of certain characters), use the ASCII codes in the procedure:
Cheers!
In VB or VBA?
It's surprising to specifically need a non-breaking space...
If you want to automatically replace a character with another during input (or prevent the entry of certain characters), use the ASCII codes in the procedure:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Cheers!
Thank you both for responding so quickly.
It's specifically while typing that I want to be able to use these characters. If my sentence ends with a ?, I need a non-breaking space to prevent the ? from being alone on a new line when the content is used in another form.
I have tried with keypress, but without success. I can't find the connection between chr() and keyAscii. Sorry if I'm not expressing myself well.
I hope you have a lead.
It's specifically while typing that I want to be able to use these characters. If my sentence ends with a ?, I need a non-breaking space to prevent the ? from being alone on a new line when the content is used in another form.
I have tried with keypress, but without success. I can't find the connection between chr() and keyAscii. Sorry if I'm not expressing myself well.
I hope you have a lead.
Un exemple pour ajouter un espace insécable avant le ? :
(adapt the code to your needs; this one prevents unwanted character input)
(adapt the code to your needs; this one prevents unwanted character input)
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 63 TextBox1.Value = TextBox1.Value & Chr(160) Case 97 To 122 ' Lowercase alpha characters Case 65 To 90 ' Uppercase alpha characters Case 8 ' Backspace Case Else KeyAscii = 0 End Select End Sub
Great.
I tried your solution and it works very well. Thank you very much.
However, while it works well when creating a new text, in correction mode it doesn't work: if I go back to the text and want to insert a ?, using the select case, my ? ends up as the last character.
So, I replaced the select case with:
TB_1 = Replace(TB_1, " ?", Chr(160) & "?") 'for the non-breaking space
TB_1 = Replace(TB_1, "*", Chr(149)) 'for the bullet
Now, I can place my character where needed. The cursor, however, still positions itself at the end of the text. But that's not a big deal.
I would have preferred a keyboard shortcut (like ctrl / Enter for going to a new line). I haven't found one.
Thanks again
Jean
I tried your solution and it works very well. Thank you very much.
However, while it works well when creating a new text, in correction mode it doesn't work: if I go back to the text and want to insert a ?, using the select case, my ? ends up as the last character.
So, I replaced the select case with:
TB_1 = Replace(TB_1, " ?", Chr(160) & "?") 'for the non-breaking space
TB_1 = Replace(TB_1, "*", Chr(149)) 'for the bullet
Now, I can place my character where needed. The cursor, however, still positions itself at the end of the text. But that's not a big deal.
I would have preferred a keyboard shortcut (like ctrl / Enter for going to a new line). I haven't found one.
Thanks again
Jean