Passaggio valori sub



  • Passaggio valori sub
    di Paolo (utente non iscritto) data: 06/02/2010


    scusate, ripetto la mia domanda perche dario solofaber ha sovvrascritto la mia prima post.

    ciao a tutti.
    sto imparando visual basic, ho scritto una programma che funziona salvo questo pezzo che non riesco ad aggiustare.
    apprezzo molto un aiuto, grazie.

    uso 5 sub per fare ciò che devo fare:
    sub base chiama 2 sub a e b che chiamano a loro volta i sub pera e mela. se il sub base trova il variabile ierror =100 deve uscire dando messaggio di errore. il valore del variabile ierror viene messo uguale a 100 all'interno dei due sub pera e mela se trovano dei errori.

    non riesco a passare il valore del ierror tra i sub anche se lo ho dichiarato as public.

    devo chiamare i sub public sub? tutti?

     
    Public Ierror As Integer
    Sub Base()
    Ierror = 0
    Call Sub A
    If Ierror = 100 then Goto finito
    Else Goto continua
    End If
    continua:
    Call Sub B
    If Ierror = 100 then Goto finito
    Else ...< fai qualcosa ..>
    End If
    finito:
    End Sub
    
    ---------------
    
    Sub A
    Call Sub Pera
    If Ierror = 100 then Goto smetti
    Else ...< fai qualcosa ..>
    End If
    smetti:
    End Sub
    
    -------------
    
    Sub B
    Call Sub Mela
    If Ierror = 100 then Goto basta
    Else ...< fai qualcosa ..>
    End If
    basta:
    End Sub
    



  • di Ricky53 data: 06/02/2010

    Ciao,
    guarda che funziona.

    prova con quanto ti invio che è una copia della tua con qualche messaggio per far capire il giro

    esegui la macro con il tasto "f8"

    ciao da ricky53
     
    Public Ierror As Integer
    Sub Base()
        Ierror = 0
        Call A
        If Ierror = 100 Then
            GoTo finito
        Else
            GoTo continua
        End If
    continua:
        Call B
        If Ierror = 100 Then
            GoTo finito
        Else
            MsgBox "Messaggio della macro 'BASE'"
        End If
    finito:
    End Sub
    
    '---------------
    
    Sub A()
        Call pera
        If Ierror = 100 Then
            GoTo smetti
        Else
            MsgBox "Messaggio della macro 'A'"
        End If
    smetti:
    End Sub
    
    '-------------
    
    Sub B()
        Call mela
        If Ierror = 100 Then
            GoTo basta
        Else
            MsgBox "Messaggio della macro 'B'"
        End If
    basta:
    End Sub
    
    Sub mela()
    
    End Sub
    
    Sub pera()
        Ierror = 100
        MsgBox "La macro 'pera' ha impostato a: " & Ierror & " - la variabile 'Ierror'"
    End Sub


  • Grazie ricky53
    di Paolo (utente non iscritto) data: 07/02/2010

    Grazie mille ricky53, funziona
    ciao,
    paolo



  • di Ricky53 (utente non iscritto) data: 07/02/2010

    Di nulla.
    buon proseguimento ed alla prossima.
    ciao da ricky53