Oppure

Loading
19/03/10 17:38
Anie
Salve a tutti ho un piccolo problemino XD

Sto creando un programma dove i due dati che mi servono vengono inseriti dall'utente attraverso le inputbox... i dati possono essere solo numerici...
quindi ho fatto questo :

For i = 0 To 1

 a = InputBox("inserisci numeri positivi", "INSERIMENTO NUMERI")
 
 
 'codice per vedere se a è un numero
 Do While Not IsNumeric(a)
   a = InputBox("devi inserire solamente numeri", "ERRORE")
    
 Loop

    
txth0(i).Text = CDbl(a)

Next i


fino a qua nn incontro problemi.
L'unica cosa che mi fa venire i nervi è che nel momento in cui premo annulla(cancel) nell'inputbox questa si riapre fino a quando nn inserisco i numeri...
come posso fare per ovviare ciò?

ho visto anche su internet che un codice per gestire Annulla è empty ma mi da errore...
quindi ho pensato...ora lo frego io!! aggiungo on "errore resume next" ma dopo se inserisco dei caratteri non mi fa il while e restituisce la stringa con valore 0 e al prof non piace...

che consigli mi date??
grazie mille =):rotfl:
aaa
19/03/10 18:24
nessuno
Tu inserisci 2 dati (dato che usi quella for) ... come si dovrebbe comportare il porogramma se pressi Cancel (per il primo e/o il secondo numero)?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/03/10 20:08
Anie
per me può restituire un stringa 0 =)
l'importante è che se inserisco dei caratteri diversi dai numeri compaia l'iputbox di errore per rinserire i dati e nn restituisca 0
(in pratica deve uscire dal for e restituire 0, penso, su entranbe le txtbox)
=)
Ultima modifica effettuata da Anie 19/03/10 20:10
aaa
19/03/10 20:39
nessuno
Qualcosa del genere

    Dim i As Integer
    Dim a As String
    Dim canc As Boolean
    
    canc = False
    For i = 0 To 1
        a = InputBox("inserisci numeri positivi", "INSERIMENTO NUMERI")
        
        If Len(a) = 0 Then
            canc = True
            Exit For
        End If
        
        'codice per vedere se a è un numero
        Do While Not IsNumeric(a)
           a = InputBox("devi inserire solamente numeri", "ERRORE")
            If Len(a) = 0 Then
                canc = True
                Exit For
            End If
        Loop
        
        txth0(i).Text = CDbl(a)
    Next i

    If canc Then
        txth0(0).Text = "0"
        txth0(1).Text = "0"
    End If
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/03/10 23:08
Anie
Postato originariamente da nessuno:

Qualcosa del genere

    Dim i As Integer
    Dim a As String
    Dim canc As Boolean
    
    canc = False
    For i = 0 To 1
        a = InputBox("inserisci numeri positivi", "INSERIMENTO NUMERI")
        
        If Len(a) = 0 Then
            canc = True
            Exit For
        End If
        
        'codice per vedere se a è un numero
        Do While Not IsNumeric(a)
           a = InputBox("devi inserire solamente numeri", "ERRORE")
            If Len(a) = 0 Then
                canc = True
                Exit For
            End If
        Loop
        
        txth0(i).Text = CDbl(a)
    Next i

    If canc Then
        txth0(0).Text = "0"
        txth0(1).Text = "0"
    End If


non pensavo ci fosse un exit for XD grazie mille
ma lan che significa???

volendo posso anche scrivere
if (a<>empty) then
'codice senza aver premunto annulla
else
'codice che gestisce annulla
end if

più o meno è la stessa cosa XD
aaa
20/03/10 9:52
nessuno
Postato originariamente da Anie:
non pensavo ci fosse un exit for XD grazie mille


Prego ... ma queste cose non si "pensano" ... si "studiano" nella documentazione ...

ma lan che significa???


Veramente è Len non lan ... calcola la "lunghezza" della stringa ...

volendo posso anche scrivere


Sì ... ma calcolare la lunghezza della stringa è più "intuitivo" ... comunque, va bene lo stesso ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.