Chiavi Ascii

Storico discussioni

Controlli da codice? di Federico
Sto cominciando a scrivere ora e forse le mie domande suonano un po' sciocche, però il sito è utile e magari qualcuno mi da' una mano.
il mio utente ha a disposizione una form con un textbox dove deve digitare un valore contabile, a due decimali, per intenderci: vorrei che se l'utente sbaglia e digita caratteri alfabetici, punti o altro, un msgbox lo avverta. possibile che questo vada risolto dichiarando io nuove variabili di appoggio e impostando if...then valore non numerico etc... non posso credere non esistano routine di controllo già pronte.
grazie a tutti

Selezione tasti premuti di Big ronnie
Ciao federico, non so se esistono procedure già fatte,comunque io te ne invio una fatta da me sperando che ti possa essere utile.un ultima cosa: tu non vuoi i segni di punteggiatura ma almeno uno lo devi usare per dividere i decimali dagli interi, quindi devi usare un punto o una virgola.nel codice troverai un'ampia spiegazione,ma ti anticipo che io ho ammesso sia il punto che la virgola,togline uno a tua scelta cancellando dal codice l'argomento interessato.
 
Inseriscila nell'userform interessato

Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Se il tasto premuto è un numero o una virgola o un punto non succede nulla(CARATTERI AMMESSI) _
 altrimenti si evidenzia l'errore con una MSGBOX e si cancella l'ultimo carattere digitato(SENDKEYS). _
 KeyAscii = 44 è una Virgola KeyAscii = 46 è un punto
If KeyAscii > 47 And KeyAscii < 58 Or KeyAscii = 44 Or KeyAscii = 46 Then
Else
MsgBox "devi inserire un numero"
SendKeys "{backspace}" 'Elimina l'ultimo carattere digitato
End If
End Sub

Programmatori e non di Federico
Ottima osservazione bigronnie, almeno un punto lo devo usare. si vede che sei un programmatore, a differenza di me
la procedura è ok, con funzioni che nemmeno immaginavo. se posso, approfitto: immagina che le textbox da controllare siano più di una anzi, una per ogni taglio di banconote euro. devo scrivere tante procedure o secondo te posso andare a chiamare la tua utilizzando in qualche maniera degli argomenti?
grazie

Chiarisco di Federico
Rileggo il mio post e non sembra chiaro nemmeno a me. la domanda è: se in una form ho un 10 txtbox per le quali voglio utilizzare la routine di bigronnie, devo scrivere 10 procedure
> sub textbox1_keypress(byval keyascii as msforms.returninteger)
> sub textbox2_keypress(byval keyascii as msforms.returninteger)
> eccetera fino a 10,
o posso risolvere il tutto in qualche maniera?
grazie

Cognolato Studio © 2005