Ciao a tutti.
Scusate se mi intrometto, ma io in un caso analogo ho provveduto così:
codice:
' * Gestione dei dati digitati riguardanti l'importo della fattura
Private Sub txtImporto_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 0 To 31, 44, 48 To 57 ' Caratteri di controllo, virgola e numerici
' dati accettati
Exit Sub
Case Else
KeyAscii = 0
End Select
End Sub
In questa maniera la textbox accetta solo caratteri di controllo, la virgola (necessaria se il numero è decimale) ed i numeri.
Adatta quindi secondo le tue esigenze agendo sui valori espressi nella "Case".
Per gestire il tasto "Enter" devi impostare a "True" la voce "KeyPreview" del form che ospita la tua textbox e sfruttare questo codice:
codice:
Private Sub Form_KeyPress(KeyAscii As Integer) ' Spostamento tra un campo e l'altro mediante il tasto
If KeyAscii = 13 Then ' "Enter" - Nota: la proprietà KeyPreview del form è True
SendKeys "{TAB}"
KeyAscii = 0
End If
End Sub
Per intercettare poi eventuali casi di "incollaggio" che non verrebbero gestiti dal codice di cui sopra (txtImporto_KeyPress), io uso il metodo "Validate" come di seguito:
codice:
Private Sub txtImporto_Validate(Cancel As Boolean) ' Importo fattura - obbligatorio
If Not IsNumeric(txtImporto.Text) Then
MsgBox "TuoMessaggioD'Errore": Cancel = True: txtImporto.SetFocus
End If
End Sub
Fammi sapere.