Beh la funzione InStr cerca una stringa, nel nostro caso un carattere, in un'altra.
Se lo trova restituisce 1, in caso contrario da 0.
Basta semplicemente cambiare il confronto per far visualizzare il messaggio di errore.
Adesso da errore se trova un carattere non consentito.
Se qui :
If (InStr(1, scelta, Mid(testo, i, 1))) > 0 Then
Cambi con:
If (InStr(1, scelta, Mid(testo, i, 1))) = 0 Then
Otterrai che se i caratteri inseriti nella textbox non sono quelli indicati da te (nonConsentiti="0123456789", che ovviamente adesso saranno quelli consentiti), ci sarà la segnalazione di errore.