Compter les caractères dans un champ à messure qu'on tape
Tessel75
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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.
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:
- Compter les caractères dans un champ à messure qu'on tape
- Créer un compte google - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Créer un compte gmail - Guide
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
s'agit-il d'un contrôle dans un formulaire?
peux-tu montrer ton code?
s'agit-il d'un contrôle dans un formulaire?
peux-tu montrer ton code?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
exemple:
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
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
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:
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
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) "
Pour autant je teste ta solution avec "Change" plutôt que "KeyUp(KeyCode As Integer, Shift As Integer) "
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
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