nel modulo di un foglio ho inserito l'evento Worksheet_Change riferito alla sola cella B4
quest'ultima e' in formato testo, ed il valore inserito in cella viene trasferito alla variabile Num
dichiarata come stringa;
il mio intento e' quello di inserire in cella solo numeri positivi con 2 decimali, che possono essere
entrambi nulli o diversi da zero, ex 123,00 oppure 123,01 oppure 0,12 etc
devo escludere numeri negativi, lettere a,b,c ..., il vuoto, lo spazio dovuto ad una
accidentale pressione della barra spaziatrice, il valore "", forse e' la stessa cosa di vuoto ?,
lo zero , il numero 0,00 ed il numero inserito non deve superare un certo numero di cifre,
nell'esempio ho impostato a 25,
insomma devo inserire solo numeri positivi con 2 decimali ed escludere qualunque altro inserimento,
e nella cella deve esserci sempre un numero mai il vuoto;
ho fatto in questo modo:
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Num As String
Num = Worksheets("Foglio8").Range("B4").Value
If Not Intersect(Target, Range("B4")) Is Nothing Then
If Not IsNumeric(Num) Or Num = "0,00" Or Num = "0" _
Or Len(Num) > 25 Or Left(Num, 1) = "-" Then
MsgBox valori errati
........................
il codice funziona, ma mi chiedevo se e' corretto o se necessita di modifica, dal momento che devo ripetere
Num = "0,00" Or Num = "0" per escludere questi caratteri.
se inserisco
Num = 0 oppure Num = "" oppure Num = "0" il codice non funziona ed ottengo un messaggio:
"TIPO NON CORRISPONDENTE"
come devo procedere?
grazie