Visualizzazione dei risultati da 1 a 5 su 5

Discussione: saltare pezzo di macro

  1. #1
    Utente di HTML.it L'avatar di thor92
    Registrato dal
    Sep 2008
    Messaggi
    89

    saltare pezzo di macro

    ciao a tutti ragazzi & ragazze !!

    codice: VBA
    versione: quella usata da excel 2007

    vi spiego il mio dilemma... in parica ho bisogno (ad un certo punto del codice) se una funziona if viene soddisfatta di saltare tutto un blocco di codice per poi riprenderlo più avanti... qui c'è un'altra funzione if che deve essere condizionata allo stesso modo... e così via per 5 volte...

    in parica è così:
    codice:
    sub commandbutton1_Click()
    
    '
    'dichiaro le variabili per il primo if
    '
    
    if nu = empty then
       ' qui mi servirebbe la funzione per saltare il codice
    else
     if... 'una sfilza di una decina di funzioni if
    end if
    
    '
    'dichiaro le variabili per il secondo if
    '
    
    if nu2 = empty then
       ' qui sempre quel codice
    else
    if.. 'ecc ecc
    end if
    
    'così via per 5 volte
    end sub

  2. #2

    Re: saltare pezzo di macro

    Originariamente inviato da thor92
    ciao a tutti ragazzi & ragazze !!

    codice: VBA
    versione: quella usata da excel 2007

    vi spiego il mio dilemma... in parica ho bisogno (ad un certo punto del codice) se una funziona if viene soddisfatta di saltare tutto un blocco di codice per poi riprenderlo più avanti... qui c'è un'altra funzione if che deve essere condizionata allo stesso modo... e così via per 5 volte...

    in parica è così:
    codice:
    sub commandbutton1_Click()
    
    '
    'dichiaro le variabili per il primo if
    '
    
    if nu = empty then
       ' qui mi servirebbe la funzione per saltare il codice
    else
     if... 'una sfilza di una decina di funzioni if
    end if
    
    '
    'dichiaro le variabili per il secondo if
    '
    
    if nu2 = empty then
       ' qui sempre quel codice
    else
    if.. 'ecc ecc
    end if
    
    'così via per 5 volte
    end sub
    In "parica" non sò come sia, in italiano è un po' confuso...

    Quello che hai detto si puo' realizzare semplicemente eliminando il ramo Then degli If (ovviamente invertendo la condizione), ma mi sembra troppo facile...:
    codice:
    if nu <> empty then
     if... 'una sfilza di una decina di funzioni if
    end if
    '....idem negli altri casi....
    Ciao !
    IceCube_HT (VB6 fan Club)

  3. #3
    Utente di HTML.it L'avatar di thor92
    Registrato dal
    Sep 2008
    Messaggi
    89
    ma alla fine dovrà risultare così:
    codice:
    If ti = Empty Then
    
    If d8 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '1'")
    End If
    If f8 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '1'")
    End If
    If f9 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '1'")
    End If
    If h8 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '1'")
    End If
    If h9 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '1'")
    End If
    If k8 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '1'")
    End If
    If l8 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '1'")
    End If
        
    End If
    oppure così:

    codice:
    If ti = Empty Then
    
    If d8 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '1'")
    
    If f8 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '1'")
    
    If f9 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '1'")
    
    If h8 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '1'")
    
    If h9 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '1'")
    
    If k8 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '1'")
    
    If l8 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '1'")
    
        
    End If

  4. #4
    Utente di HTML.it L'avatar di thor92
    Registrato dal
    Sep 2008
    Messaggi
    89
    mi è venuta anceh un'altra idea per risolvere la situazione... ovvero richiamare un modulo dal codice... ovvero:
    in 5 moduli diversi inserisco i 5 blocchi di funzioni if... poi... in un modulo principale definisco... se il primo if è vero... allora apri quel modulo (1,2,3,4 o 5) se non è vero.. continua con il codice...
    avevo provato con for each ma non funziona molto bene... + che altro sono io che ho fretta e non ho tempo di inpararlo ad usare bene...
    comunque in conclusione... esiste un modo per aprire una macro o modulo che sia, tramite codice da un'altra macro o modulo?

  5. #5
    Utente di HTML.it L'avatar di thor92
    Registrato dal
    Sep 2008
    Messaggi
    89
    ok ok ok ok... scusa icecube ho capito solo ora quello che intendevi.. XD
    comunque alla fine ci sono riuscito... passo il codice finale..
    codice:
    Sub commandbutton1_Click()
    
    'prima fila di campi
    
    ti = Range("C8").Value
    d8 = Range("D8").Value
    f8 = Range("F8").Value
    f9 = Range("F9").Value
    h8 = Range("H8").Value
    h9 = Range("H9").Value
    k8 = Range("K8").Value
    l8 = Range("L8").Value
    
    
    If ti <> Empty Then
    If d8 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '1'")
    End If
    If f8 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '1'")
    End If
    If f9 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '1'")
    End If
    If h8 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '1'")
    End If
    If h9 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '1'")
    End If
    If k8 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '1'")
    End If
    If l8 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '1'")
    End If
     End If
    
    
    'seconda fila di campi
    
    ti2 = Range("C10").Value
    d82 = Range("D10").Value
    f82 = Range("F10").Value
    f92 = Range("F11").Value
    h82 = Range("H10").Value
    h92 = Range("H11").Value
    k82 = Range("K10").Value
    l82 = Range("L10").Value
    
    
    If ti2 <> Empty Then
    
    If d82 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '2'")
    End If
    If f82 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '2'")
    End If
    If f92 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '2'")
    End If
    If h82 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '2'")
    End If
    If h92 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '2'")
    End If
    If k82 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '2'")
    End If
    If l82 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '2'")
    End If
    End If
    'terza fila di campi
    
    ti3 = Range("C12").Value
    d83 = Range("D12").Value
    f83 = Range("F12").Value
    f93 = Range("F13").Value
    h83 = Range("H12").Value
    h93 = Range("H13").Value
    k83 = Range("K12").Value
    l83 = Range("L12").Value
    
    
    If ti3 <> Empty Then
    
    If d83 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '3'")
    End If
    If f83 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '3'")
    End If
    If f93 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '3'")
    End If
    If h83 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '3'")
    End If
    If h93 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '3'")
    End If
    If k83 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '3'")
    End If
    If l83 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '3'")
    End If
    End If
    'quarta fila di campi
    
    ti4 = Range("C14").Value
    d84 = Range("D14").Value
    f84 = Range("F14").Value
    f94 = Range("F15").Value
    h84 = Range("H14").Value
    h94 = Range("H15").Value
    k84 = Range("K14").Value
    l84 = Range("L14").Value
    
    
    If ti4 <> Empty Then
    
    If d84 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '4'")
    End If
    If f84 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '4'")
    End If
    If f94 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '4'")
    End If
    If h84 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '4'")
    End If
    If h94 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '4'")
    End If
    If k84 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '4'")
    End If
    If l84 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '4'")
    End If
    End If
    'quinta fila di campi
    
    ti5 = Range("C16").Value
    d85 = Range("D16").Value
    f85 = Range("F16").Value
    f95 = Range("F17").Value
    h85 = Range("H16").Value
    h95 = Range("H17").Value
    k85 = Range("K16").Value
    l85 = Range("L16").Value
    
    
    If ti5 <> Empty Then
    
    If d85 = Empty Then
        MsgBox ("hai dimenticato il campo - pilota! in volo '5'")
    End If
    If f85 = Empty Then
        MsgBox ("hai dimenticato il campo - orario accensione! in volo '5'")
    End If
    If f95 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '5'")
    End If
    If h85 = Empty Then
        MsgBox ("hai dimenticato il campo - orario decollo! in volo '5'")
    End If
    If h95 = Empty Then
        MsgBox ("hai dimenticato il campo - orario spegnimento! in volo '5'")
    End If
    If k85 = Empty Then
        MsgBox ("hai dimenticato il campo - decolli! in volo '5'")
    End If
    If l85 = Empty Then
        MsgBox ("hai dimenticato il campo - atterraggi! in volo '5'")
    End If
    End If
    
    End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.