Compter les caractères dans un champ à messure qu'on tape

Fermé
Tessel75 - 24 avril 2022 à 21:56
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 25 avril 2022 à 14:18
Bonjour,
Je voudrais compter le nombre des caractères dans un champ à mesure qu'on tape le texte pour ne pas dépasser un certain nombre sans en arriver à buter contre la limite spécifiée par les formats de la table.
Je bloque sur une impossibilité que je n'arrive pas à lever. En effet, je connais bien la fonction "Len(Screen.ActiveControl)" mais le problème est qu'elle ne compte pas les caractères à mesure qu'on les tape, mais indique le Nbre des caractères au moment où le pointeur a été entré sur le contrôle; ce qui fait que la fonction ne compte pas du tout les caractères tapés, mais ceux qu étaient déjà tapés quand le pointeur est entré dans le contrôle.
En espérant avoir été clair dans mes explications, je vous remercie de vos réponses.


Configuration: Windows / Firefox 99.0
A voir également:

3 réponses

yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
25 avril 2022 à 08:42
bonjour,
s'agit-il d'un contrôle dans un formulaire?
peux-tu montrer ton code?
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
25 avril 2022 à 09:01
exemple:
Private Sub nom_Change()
MsgBox Len(Me.nom.text)
End Sub
0
Bonjour et Merci pour ta réponse.
Mon code est très simple.

Sub CITATION_KeyUp(KeyCode As Integer, Shift As Integer)
NbCr = 256 - Len(Screen.ActiveControl)
If NbCr > 0 And NbCr < 5 Then
MsgBox "Vous allez dépasser la limite des Notes courtes." _
& Chr(13) & "Il vous reste " & NbCr & " caractères avant d'atteindre les 255." 'vbExclamation + vbOKOnly, ""
End If

End Sub
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
25 avril 2022 à 11:58
peux-tu utiliser les balises de code quand tu partages du code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

s'agit-il d'un contrôle dans un formulaire?
suggestion:
private Sub CITATION_change()
NbCr = 256 - Len(Me.CITATION.text)
If NbCr > 0 And NbCr < 5 Then
MsgBox "Vous allez dépasser la limite des Notes courtes." _
& Chr(13) & "Il vous reste " & NbCr & " caractères avant d'atteindre les 255." 'vbExclamation + vbOKOnly, ""
End If

End Sub
0
Désolé mais je sais pas marquer les balises; je n'ai appris le VBA qu'en autodidacte càd en convertissant les macros avec l'automatisme de Access, et après de proche en proche vers des enchainements plus compliqués.
Pour autant je teste ta solution avec "Change" plutôt que "KeyUp(KeyCode As Integer, Shift As Integer) "
0
Après test, je peux dire que ça ne passe pas. Mais l'idée est bonne, de passer à "Change" plutôt que "KeyUp(KeyCode As Integer, Shift As Integer) "
Mais ce qui ne passe pas, c'est la ré-initialisation du comptage des caractères Len(Screen.ActiveControl)
J'essaye autre chose, et puis je donne la réponse.
Merci
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
25 avril 2022 à 14:18
Relis bien la page à propos des balises.
0