Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Contrôle contenu du TextBox

14 réponses
Avatar
StDonat
Bonjour
J’ai un TextBox dans un UserForm et je voudrais n’autoriser à saisir dans ce
TextBox que des valeurs numériques entières ?
Je ne veux pas de valeur décimale 1.02 ou 1,03…et encore moins de texte
f1toto !
Merci

4 réponses

1 2
Avatar
Tatanka
Il va sans dire que « couche-töt » ne signifie rien !
Et c'est bien sûr, il me fallait écrire « couche-tôt ».
Maintenant c'est fait et que le Seigneur me pardonne ;-)

Encore moé




"Tatanka" a écrit dans le message de news:
Pas facile de faire la différence entre couche-tard et couche-töt !
En tous cas, sache que mon complice Excel québécois
se comporte de façon impeccable ;-)

Moé


"Mgr T. Banni" a écrit dans le message de news:
héhé, mon fils, on est lève-tôt ou couche-tard à cause de ces complices qui ne cessent de vous trahir?
:-)
T.B.

"Tatanka" a écrit dans le message de news: %
Monseigneur, sans vouloir vous fusquer, « un grand respir »,
tout en étant plus laid, me plaît davantage qu'un « grand respire ».
Comme ça, je suis assuré que quiconque ne pourra pas
prétendre que je conjugue le verbe « respirer ».

Aloha
Serge


"Mgr T. Banni" a écrit dans le message de news:
comment veux-tu, michel, que StDonat (dont je ne vois pas la statue dans mon église) prenne un grand respire alors que tu lui
souffles dans les bronches :-)
Mgr T.B.

"michdenis" a écrit dans le message de news:
Si tu prenais un grand respire

















Avatar
michdenis
Tu devrais utiliser cette version : http://cjoint.com/?cCpaKUDHkx
Quelques légères modifications ont été apportées.



"StDonat" a écrit dans le message de groupe de
discussion :
Merci Génial
Il me reste maintenant à me plongé dans ton code pour le comprendre et
progresser encore un peu. Mais vu qu'il y a quelques lignes! il va me falloir
du temps.

"michdenis" wrote:

Un exemple ici : http://cjoint.com/?cBw4k3NHQd



"StDonat" a écrit dans le message de groupe de
discussion :
Tu as raison de me reprendre, Je dois penser a expliquer clairement mon
besoin, mais il est parfois difficile de penser a toutes les astuces...
Mon probléme:
Dans mon TextBox, je ne veux que des valeurs entières. J’ai donc besoin d’un
moyen pour contrôler cela lorsque le TextBox perd la Focus. Si la valeur
qu’il contient n’est pas un entier numérique je l’efface, je monte un message
d’avertissement et je lui redonne le focus.
En espérant avoir prévu tous les cas de figure ?!


"michdenis" wrote:

> Si tu prenais un grand respire et que tu décrivais
> ce que tu veux qui se passe au niveau du textbox
> lorsque l'usager essaie de copier un contenu ?
>
> Veux-tu empêcher le "coller" totalement ?
>
> Si la chaîne de caractères qui doit être copiée contient
> du texte et des chiffres, permettre seulement la copie
> des chiffres ?
>
> Tu veux autre chose ?
>
> Ici ce n'est pas un jeu de devinettes. Si tu n'exprimes pas tes
> besoins, il ne faut pas espérer que les répondeurs les devinent.
>
>
>
> "StDonat" a écrit dans le message de groupe de
> discussion :
> Merci, mais cela ne controle pas un "Coller" dans le textbox!
> Un autre evenement peut etre ?
>
> "michdenis" wrote:
>
> > Bonjour,
> >
> > Utilise cet événement pour ton textbox de cette manière :
> >
> > '----------------------------------
> > Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
> >
> > If KeyAscii < 48 Or KeyAscii > 58 Then
> > KeyAscii = 0
> > End If
> >
> > End Sub
> > '----------------------------------
> >
> >
> >
> >
> > "StDonat" a écrit dans le message de groupe de
> > discussion :
> > Bonjour
> > J’ai un TextBox dans un UserForm et je voudrais n’autoriser à saisir dans ce
> > TextBox que des valeurs numériques entières ?
> > Je ne veux pas de valeur décimale 1.02 ou 1,03…et encore moins de texte
> > f1toto !
> > Merci
> >


Avatar
StDonat
Désolé d'intérompre votre priére!!!
Mais les 2 progrmmas proposé ont le même défaut à savoir qu'il ne m'autorise
pas de coller un nombre entier, du cout toutes les fonctions deviennent
presque inutile surtout la function Extraire. En fait quand j'eesaye de
débuger et que le presse paier contient un "9" je me rend compte que la
varible x qui arrive dans la fonction extraire et en fait suivi d'un
caractere, style retour chariot dans Word. Si je modifie le début de la
fonction extraire par:
text = Application.Substitute(val(x), " ", "") je peux alors coller un
nombre entier mais ce dernier ne remplace pas le contenue du Textbox mais il
se colle a la suite..
J'espere etre suffisament clair et merci pour tout

"michdenis" wrote:

Tu devrais utiliser cette version : http://cjoint.com/?cCpaKUDHkx
Quelques légères modifications ont été apportées.



"StDonat" a écrit dans le message de groupe de
discussion :
Merci Génial
Il me reste maintenant à me plongé dans ton code pour le comprendre et
progresser encore un peu. Mais vu qu'il y a quelques lignes! il va me falloir
du temps.

"michdenis" wrote:

> Un exemple ici : http://cjoint.com/?cBw4k3NHQd
>
>
>
> "StDonat" a écrit dans le message de groupe de
> discussion :
> Tu as raison de me reprendre, Je dois penser a expliquer clairement mon
> besoin, mais il est parfois difficile de penser a toutes les astuces...
> Mon probléme:
> Dans mon TextBox, je ne veux que des valeurs entières. J’ai donc besoin d’un
> moyen pour contrôler cela lorsque le TextBox perd la Focus. Si la valeur
> qu’il contient n’est pas un entier numérique je l’efface, je monte un message
> d’avertissement et je lui redonne le focus.
> En espérant avoir prévu tous les cas de figure ?!
>
>
> "michdenis" wrote:
>
> > Si tu prenais un grand respire et que tu décrivais
> > ce que tu veux qui se passe au niveau du textbox
> > lorsque l'usager essaie de copier un contenu ?
> >
> > Veux-tu empêcher le "coller" totalement ?
> >
> > Si la chaîne de caractères qui doit être copiée contient
> > du texte et des chiffres, permettre seulement la copie
> > des chiffres ?
> >
> > Tu veux autre chose ?
> >
> > Ici ce n'est pas un jeu de devinettes. Si tu n'exprimes pas tes
> > besoins, il ne faut pas espérer que les répondeurs les devinent.
> >
> >
> >
> > "StDonat" a écrit dans le message de groupe de
> > discussion :
> > Merci, mais cela ne controle pas un "Coller" dans le textbox!
> > Un autre evenement peut etre ?
> >
> > "michdenis" wrote:
> >
> > > Bonjour,
> > >
> > > Utilise cet événement pour ton textbox de cette manière :
> > >
> > > '----------------------------------
> > > Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
> > >
> > > If KeyAscii < 48 Or KeyAscii > 58 Then
> > > KeyAscii = 0
> > > End If
> > >
> > > End Sub
> > > '----------------------------------
> > >
> > >
> > >
> > >
> > > "StDonat" a écrit dans le message de groupe de
> > > discussion :
> > > Bonjour
> > > J’ai un TextBox dans un UserForm et je voudrais n’autoriser à saisir dans ce
> > > TextBox que des valeurs numériques entières ?
> > > Je ne veux pas de valeur décimale 1.02 ou 1,03…et encore moins de texte
> > > f1toto !
> > > Merci
> > >
Avatar
michdenis
A ) As-tu testé la dernière version proposée ?

Il est vrai que dans la première version, si on copiait le contenu
d'une cellule dans le presse-papier, ceci causait un petit problème
à cause des caractères Chr(13) et Chr(10) qui s'insèrent automatiquement
dans le presse-papier avec la valeur contenue dans la cellule.
La dernière version résout de problème que je n'avais pas remarqué en
premier.

| même défaut à savoir qu'il ne m'autorise pas de coller un nombre entier
*** Dans un textbox, il n'y a pas de menu contextuel pour choisir la
commande "Coller". Le raccourci clavier Ctrl + V fait le boulot
correctement. Tu places le curseur où tu désires dans le textbox et
avec le raccourci clavier, tu peux insérer la valeur du presse-papier
où tu le désires.Comme il ne peut y avoir de décimales dans ton
textbox, le contenu du presse-papier est arrondi si il contient une
valeur ayant une décimale(par choix).

| mais ce dernier ne remplace pas le contenue du Textbox
***Un testbox, ce n'est pas une cellule. On doit programmer le
comportement du textbox selon ses désirs.

Je t'ai fait remarquer que lors de mes premières interventions sur ce fil
de préciser ce que tu désirais et tu t'es contenté d'énoncer ce qui suit :
'**********************************************
Dans mon TextBox, je ne veux que des valeurs entières. J’ai donc besoin d’un
moyen pour contrôler cela lorsque le TextBox perd la Focus. Si la valeur
qu’il contient n’est pas un entier numérique, je l’efface, je monte un message
d’avertissement et je lui redonne le focus.
'**********************************************

Il ne faut pas te surprendre si le textbox ne fait pas tout ce que tu veux
maintenant. Pour pouvoir obtenir satisfaction par un coller, si tu
veux remplacer tout le contenu du textbox, tu double-cliques dans le
textbox pour sélectionner tout le contenu et tu appliques le raccourci clavier

Pour ce faire, j'ai ajouté une ligne de code à cette procédure :
'--------------------------------------------------------
Function ValeurTextbox(Textbox As MSForms.Textbox, Presse_Papier)
If Presse_Papier = "" Then ValeurTextbox = Textbox.Text: Exit Function
'********************Ligne ajoutée***************************
If Textbox.SelLength = Len(Textbox) Then Textbox = ""
'**************************************************************
With Textbox
If Left(Presse_Papier, 1) = "-" Or Left(.Text, 1) = "-" Then
.Text = Replace(Left(.Text, .SelStart) & _
Presse_Papier & _
Right(.Text, Len(.Text) - .SelStart), "-", "")
Else
.Text = Left(.Text, .SelStart) & Presse_Papier & _
Right(.Text, Len(.Text) - .SelStart)
End If
End With
ValeurTextbox = Textbox.Text
End Function
'--------------------------------------------------------





"StDonat" a écrit dans le message de groupe de
discussion :
Désolé d'intérompre votre priére!!!
Mais les 2 progrmmas proposé ont le même défaut à savoir qu'il ne m'autorise
pas de coller un nombre entier, du cout toutes les fonctions deviennent
presque inutile surtout la function Extraire. En fait quand j'eesaye de
débuger et que le presse paier contient un "9" je me rend compte que la
varible x qui arrive dans la fonction extraire et en fait suivi d'un
caractere, style retour chariot dans Word. Si je modifie le début de la
fonction extraire par:
text = Application.Substitute(val(x), " ", "") je peux alors coller un
nombre entier mais ce dernier ne remplace pas le contenue du Textbox mais il
se colle a la suite..
J'espere etre suffisament clair et merci pour tout

"michdenis" wrote:

Tu devrais utiliser cette version : http://cjoint.com/?cCpaKUDHkx
Quelques légères modifications ont été apportées.



"StDonat" a écrit dans le message de groupe de
discussion :
Merci Génial
Il me reste maintenant à me plongé dans ton code pour le comprendre et
progresser encore un peu. Mais vu qu'il y a quelques lignes! il va me falloir
du temps.

"michdenis" wrote:

> Un exemple ici : http://cjoint.com/?cBw4k3NHQd
>
>
>
> "StDonat" a écrit dans le message de groupe de
> discussion :
> Tu as raison de me reprendre, Je dois penser a expliquer clairement mon
> besoin, mais il est parfois difficile de penser a toutes les astuces...
> Mon probléme:
> Dans mon TextBox, je ne veux que des valeurs entières. J’ai donc besoin d’un
> moyen pour contrôler cela lorsque le TextBox perd la Focus. Si la valeur
> qu’il contient n’est pas un entier numérique je l’efface, je monte un message
> d’avertissement et je lui redonne le focus.
> En espérant avoir prévu tous les cas de figure ?!
>
>
> "michdenis" wrote:
>
> > Si tu prenais un grand respire et que tu décrivais
> > ce que tu veux qui se passe au niveau du textbox
> > lorsque l'usager essaie de copier un contenu ?
> >
> > Veux-tu empêcher le "coller" totalement ?
> >
> > Si la chaîne de caractères qui doit être copiée contient
> > du texte et des chiffres, permettre seulement la copie
> > des chiffres ?
> >
> > Tu veux autre chose ?
> >
> > Ici ce n'est pas un jeu de devinettes. Si tu n'exprimes pas tes
> > besoins, il ne faut pas espérer que les répondeurs les devinent.
> >
> >
> >
> > "StDonat" a écrit dans le message de groupe de
> > discussion :
> > Merci, mais cela ne controle pas un "Coller" dans le textbox!
> > Un autre evenement peut etre ?
> >
> > "michdenis" wrote:
> >
> > > Bonjour,
> > >
> > > Utilise cet événement pour ton textbox de cette manière :
> > >
> > > '----------------------------------
> > > Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
> > >
> > > If KeyAscii < 48 Or KeyAscii > 58 Then
> > > KeyAscii = 0
> > > End If
> > >
> > > End Sub
> > > '----------------------------------
> > >
> > >
> > >
> > >
> > > "StDonat" a écrit dans le message de groupe de
> > > discussion :
> > > Bonjour
> > > J’ai un TextBox dans un UserForm et je voudrais n’autoriser à saisir dans ce
> > > TextBox que des valeurs numériques entières ?
> > > Je ne veux pas de valeur décimale 1.02 ou 1,03…et encore moins de texte
> > > f1toto !
> > > Merci
> > >
1 2