Question : Comment limiter l'utilisateur clef-dans au point/à virgule décimale seulement une fois dans une boîte à textes d'Userform ?

Salut chacun,

que j'essaye de faire ma propre boîte numérique des textes dans VBA puisqu'il n'y en a aucun (ou y a il ?). Je travaille actuellement à mes validations et le problème est : Je ne veux pas que l'utilisateur écrive le point/virgule décimale (.) plus d'une fois dans la boîte à textes d'Userform. le

en date de maintenant, je remets l'événement de KeyPress de la boîte à textes, dois faire une boucle par chaque caractère de la corde, puis trouve alors pour remplacer le point/virgule décimale par un blanc (le "" représente le blanc, suis moi redressent ?). Je ne comprends pas pourquoi mon programme n'enlève pas le plus en retard verrouiller-dans le point. Est-ce que n'importe qui peut me dépanner ? Ou y a-t-il une manière bien meilleure de faire ceci ? Merci à l'avance.
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
ctrLast " de " codeSnippet844381 d'id= " de
Dim de class= comme nombre entier
        Faible tempSal comme corde

        tempSal = Me.txt EmpSal.Value

        'boucle à partir d'extrémité de corde ; remplacer le dernier point de /decimal de point introduit au clavier par l'utilisateur par le blanc
        Pour le ctrLast = le Len (tempSal) à 1 étape -1
            Si mi (tempSal, ctrLast, 1) = « . » Puis
                tempSal = remplacer (tempSal, mi (tempSal, ctrLast, 1), "", ctrLast, 1)
                Sortir pour
            Finir si
        Prochain ctrLast

        Me.txt EmpSal.Value = tempSal
class= de

Réponse : Comment limiter l'utilisateur clef-dans au point/à virgule décimale seulement une fois dans une boîte à textes d'Userform ?

Voici un certain code :

Sous-marin privé TextBox1_KeyPress (ByVal KeyAscii comme MSForms.ReturnInteger)
Choisir le cas KeyAscii
   Enfermer Asc (« 0 ») à Asc (« 9 »)
    Enfermer l'Asc (« - »)
       S'Instr (1, Me.TextBox1.Text, « - ») > 0 ou Me.TextBox1.SelStart > 0 puis
           KeyAscii = 0
       Finir si
   Enfermer Asc (« .")
       S'InStr (1, Me.TextBox1.Text, « .") > 0 puis
           KeyAscii = 0
       Finir si
   Enfermer autrement
       KeyAscii = 0
Extrémité choisie
Sous-marin d'extrémité

d'ici : http://www.cpearson.com/excel/TextBox.htm

Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us