Dovresti spiegare in dettaglio quali costrizioni vuoi applicare alla risposta, che puo' essere un valore "nullo" (Ok senza scrivere nulla, tasto Annulla, la X della finestra inputbox) oppure sintatticamente sbagliato (es "non so rispondere") oppure inferiore a zero, oppure pari a zero per scelta (risposto "0"), oppure positivo.
Sarei tentato di considerare il valore nullo pari allo "0", e lo gestirei con questa:
- Codice: Seleziona tutto
Sub prova()
Replay:
On Error GoTo 0
X = (InputBox("Immetti un numero (0-100)"))
If X <> "" Then
On Error GoTo Converr
X = CDbl(X)
Else: X = 0
End If
If X = 0 Then
MsgBox ("non si imposta nessun numero")
ElseIf X < 0 Or X > 100 Then
MsgBox ("Numero tra 0 e 100; riprova"): GoTo Replay
Else
Sheets("Foglio2").Range("P7") = X
End If
Exit Sub
Converr:
Resume Replay
End Sub
E' una soluzione molto simile a quella postata da Flash (vedi sopra), ma non usa recursivamente la macro quanto pittosto la ripresa della stessa macro usando Resume.
Ciao a tutti.