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.