Concatenazione if thenelse



  • Concatenazione if then/else
    di Natyna (utente non iscritto) data: 06/10/2009

    Riciao a tutti! sto cercando di migliorare quanto + possibile il questionario di cui vi ho parlato nei giorni scorsi.. ma ho trovato un intoppo riguardo la concatenazione degli "if then" e degli "else"! vi incollo sotto il codice, se qualcuno mi dice dove sbaglio, mi fa un favorissimo! praticamente, al primo msgbox con si e no (quello relativo alla richiesta di aiutarmi a capire qualcosa di loro), nel caso clicchino su "si" vorrei che si aprisse il .ppt, dopo il msg "era quello che speravo, etc", nel caso clicchino su "no", dopo il msg "grazie lo stesso, ciao!", vorrei che si chiudesse il file. per quanto riguarda l'altro sì/no (quello sulla chiarezza delle istruzioni), vorrei che nel caso clicchino su "si" si aprisse il .ppt (dopo il msg di sopra, cioè "era quello che speravo!etc"=, nel caso clicchino su "no", vorrei che fossero ripetute le istruzioni "ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! nient'altro! ora è chiaro?", all'infinito, fino a che non si risponda "si" al "è tutto chiaro?".
    se non è chiaro ciò che vorrei ottenere, chiedetemi! grazie in anticipo! ciao!



     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
    Sub auto_open()
    'Application.WindowState = xlMinimized
    Variabile = MsgBox("Vuoi aiutarci a capire qualcosa di te?", vbYesNo)
      If Variabile = vbYes Then
      MsgBox "Evviva! Era proprio quello che speravo! Le istruzioni da seguire sono molto semplici.."
      MsgBox "...infatti, tu dovrai soltanto rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO!"
      MsgBox "Tutto chiaro?, vbYesNo
      If Variabile = vbYes Then
    MsgBox "Bene, allora cominciamo!"
      Else
         MsgBox "Ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO! Ora è chiaro?, vb YesNo"
         If Variabile = vbYes Then
         MsgBox "Bene, allora cominciamo!"
    Else
         MsgBox "Ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO! Ora è chiaro?, vb YesNo"
         X = ShellExecute(0, "OPEN", "Z:Questionario.ppt", "", "", 1)
         'ActiveWindow.Close
         Application.Quit
         Else
         MsgBox "Peccato! Grazie lo stesso, ciao!"
         Application.Quit
         End If
    End Sub
     
     
    



  • di Enzo (utente non iscritto) data: 07/10/2009

    L'ho cambiata prova a vedere se va bene
     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
    Sub auto_open()
    'Application.WindowState = xlMinimized
    2 VARIABILE = MsgBox("Vuoi aiutarci a capire qualcosa di te?", vbYesNo)
      If VARIABILE = vbYes Then
      MsgBox "Evviva! Era proprio quello che speravo! Le istruzioni da seguire sono molto semplici.."
      MsgBox "...infatti, tu dovrai soltanto rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO!"
      VARIABILE4 = MsgBox("Tutto chiaro?", vbYesNo)
      If VARIABILE4 = vbYes Then
      MsgBox "Bene, allora cominciamo!"
      GoTo 10
      Else
     GoTo 2
       End If
      End If
    VARIABILE2 = MsgBox("Ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO! Ora è chiaro?", vbYesNo)
         If VARIABILE2 = vbYes Then
         MsgBox "Bene, allora cominciamo!"
         GoTo 10
         End If
    VARIABILE3 = MsgBox("Ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO! Ora è chiaro?", vbYesNo)
          If VARIABILE3 = vbYes Then
    10  X = ShellExecute(0, "OPEN", "Z:Questionario.ppt", "", "", 1)
              Else
         MsgBox "Peccato! Grazie lo stesso, ciao!"
         Application.Quit
         End If
    End Sub
    


  • Concatenazione if then/ else
    di Natyna (utente non iscritto) data: 07/10/2009

    Grazie enzo! ma non funziona ancora perfettamente! ho aggiunto un passo 3, visto che al "no, non ho capito", deve rimandare nuovamente alle istruzioni.. però, alla fine, dopo ch erispiega le istruzioni 2 volte, non rimanda + ad una terza spiegazione, ma chiude il file dopo il msg "peccato, grazie lo stesso, ciao!". non si può far sì che le istruzioni vengano spiegate infinitamente, finchè non si risponde "si" alla domanda "ora è chiaro?". infatti, vorrei che il msg "peccato, grazie lo stesso ciao!" e la conseguente chiusura dell'applicazione avvenisse solo nel caso in cui si risponda "no" alla domanda iniziale "vuoi aiutarci a capire qualcosa di te?", non a quelle successive!! grazieeeeeee!!
     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
    Sub auto_open()
    'Application.WindowState = xlMinimized
    2 VARIABILE = MsgBox("Vuoi aiutarci a capire qualcosa di te?", vbYesNo)
      If VARIABILE = vbYes Then
      MsgBox "Evviva! Era proprio quello che speravo! Le istruzioni da seguire sono molto semplici.."
      MsgBox "...infatti, tu dovrai soltanto rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO!"
      VARIABILE4 = MsgBox("Tutto chiaro?", vbYesNo)
      If VARIABILE4 = vbYes Then
      MsgBox "Bene, allora cominciamo!"
      GoTo 10
      Else
     GoTo 3
       End If
      End If
    3 VARIABILE2 = MsgBox("Ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO! Ora è chiaro?", vbYesNo)
         If VARIABILE2 = vbYes Then
         MsgBox "Bene, allora cominciamo!"
         GoTo 10
         End If
         VARIABILE3 = MsgBox("Ripeto, c'è una sola cosa che dovrai fare: rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO! Ora è chiaro?", vbYesNo)
          If VARIABILE3 = vbYes Then
    10  X = ShellExecute(0, "OPEN", "Z:Questionario.ppt", "", "", 1)
              Else
         MsgBox "Peccato! Grazie lo stesso, ciao!"
         Application.Quit
         End If
    End Sub



  • di Enzo (utente non iscritto) data: 08/10/2009

    ....ora e' piu' snella e fa quello che hai chiesto
    alla prima domanda se rispondi no messaggio e chiusura
    se vai avanti ulteriori messaggi e se rispondi no te li ripropone fino a quando dici si e apri il file
    bye

     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
    Sub auto_open()
    'Application.WindowState = xlMinimized
      VARIABILE = MsgBox("Vuoi aiutarci a capire qualcosa di te?", vbYesNo)
      If VARIABILE = vbNo Then
      MsgBox "Peccato! Grazie lo stesso, ciao!"
      Application.Quit
      Exit Sub
      End If
    2 MsgBox "Evviva! Era proprio quello che speravo! Le istruzioni da seguire sono molto semplici.."
      MsgBox "...infatti, tu dovrai soltanto rispondere un sì o un no ogni volta che vedrai comparire una domanda! NIENT'ALTRO!"
      VARIABILE2 = MsgBox("Tutto chiaro?", vbYesNo)
      If VARIABILE2 = vbYes Then
      MsgBox "Bene, allora cominciamo!"
      GoTo 10
      Else
      GoTo 2
      End If
    10     X = ShellExecute(0, "OPEN", "Z:Questionario.ppt", "", "", 1)
    End Sub
    


  • Dubbi....
    di Natyna (utente non iscritto) data: 08/10/2009

    Enzo, ora funziona davvero tutto alla perfezione! 6 stato grandissimo! :9 grazie!
    ho 2 dubbi:

    1° dubbio: e' possibile scrivere l'intero codice direttamente sul power point finale, invece di lavorare prima tramite excel e poi tramite power point? forse, è + semplice ed intuitivo per il lettore del questionario, o no? in questo caso, se si risponde no al quesito se si voglia fare il questionario oppure no, si dovrebbe semplicemente chiudere il power point, se no, si dovrebbe passare alla slide successiva, dove comincia il questionario vero e proprio (vuoi ridere? sto trovando difficoltà pure nella creazione della userform, non so perchè ma non me la vuole proprio inserire nella slide!!).. è possibile fare tutto ciò, secondo te?

    2° dubbio: nel codice x = shellexecute(0, "open", "z:questionario.ppt", "", "", 1) cosa fanno nel dettaglio lo "0" iniziale, i 2 " " prima dell'1 e l'1 finale?
    grazie ancora se vorrai continuare ad aiutarmi! buona giornata!



  • di Enzo (utente non iscritto) data: 08/10/2009

    Primo dubbio - non penso si possa fare
    secondo dubbio - un consiglio vai nella guida in linea e digita la funzione shell e vedrai tutto
    un consiglio, se al posto di open tu scrivessi print stampi il file invece di aprirlo
    bye