Textbox : espace insécable pendant la saisie
Résolu/Fermé6 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 févr. 2014 à 09:57
21 févr. 2014 à 09:57
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
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
21 févr. 2014 à 09:58
21 févr. 2014 à 09:58
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
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
21 févr. 2014 à 10:26
21 févr. 2014 à 10:26
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