Excel vba e power point



  • Excel vba e power point
    di Natyna (utente non iscritto) data: 30/09/2009

    Ciao a tutti! vorrei creare una user form su excel (con vba) che contenga una domanda a cui l'utente possa rispondere "sì" o "no"; a questo punto, se risponderà "sì", dovrà aprirsi una presentazione power point con all'interno testo/immagini e suoni, se risponderà "no", prima dovrà apparire un msgbox con un avviso e poi si dovrà chiudere il tutto.. come posso fare?? aiuto!! grazie!!



  • di Enzo (utente non iscritto) data: 30/09/2009

    Inizialmente ciao a tutti e' un po che non intervengo nel forum
    tornando alla tua richiesta, si dovrebbe inizialmente cercare di impostare qualcosa da soli e poi chiedere help
    in ogni caso crea una userform ed all'interno inserisci due bottoni di opzione (option button 1 e option button 2) dove modificherai anche il testo inserendo si e no
    poi inserisci in una label il contenuto della tua domanda
    in seguito le istruzioni qui sotto vanno riportate all'interno della userform dove devi modificare il percorso ed il nome del file che vuoi aprire (xxxxxx.xxx)
    ora fai partire la userform e provala
    dovfrebbe andare fa sapere

     
    Private 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
    Private Sub OptionButton1_Click()
    If OptionButton1.Value = True Then
    X = ShellExecute(0, "OPEN", "C:xxxxxxxx.xxx", "", "", 1)
    End If
    End Sub
    Private Sub OptionButton2_Click()
    If OptionButton2.Value = True Then
    MsgBox "tuo avviso"
    UserForm1.Hide
    End If
    End Sub
    



  • di Natyna (utente non iscritto) data: 01/10/2009

    Enzo, grazie della risposta! eccoti sotto il mio codice.. che, ovviamente, non funziona.. :( secondo te cosa ho sbagliato? premetto che non sono un'esperta di vba (penso che te ne sarai già accorto!) :) a presto!
     
    Sub auto_open()
    
    Dim Variabile As Integer
    
    Variabile = MsgBox("Vuoi aiutarci a capire qualcosa di te?", vbYesNo)
    
    End SubPrivate 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
    Private Sub OptionYes_Click()
    If OptionYes.Value = True Then
    X = ShellExecute(0, "OPEN", "Z:Questionario.ppt", "", "", 1)
    End If
    End Sub
    Private Sub OptionNo_Click()
    If OptionNo.Value = True Then
    MsgBox "Peccato! Grazie lo stesso, ciao!"
    UserForm1.Hide
    End If
    End Sub



  • di Big ronnie (utente non iscritto) data: 01/10/2009

    Ciao natyna,

    copiala così com'è dovrebbe andare bene

    ciao big
     
    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()
    Variabile = MsgBox("Vuoi aiutarci a capire qualcosa di te?", vbYesNo)
      If Variabile = vbYes Then
         X = ShellExecute(0, "OPEN", "C:usersadelmodesktoppresentazione1.ppt", "", "", 1)
      Else
         MsgBox "Peccato! Grazie lo stesso, ciao!"
         UserForm1.Hide
    End If
    End Sub



  • di Natyna (utente non iscritto) data: 01/10/2009

    Che carini che siete, tutti quanti! mi state aiutando tantissimo, grazie! allorea, big: ora mi appare il msgbox all'apertura della cartella, ma se clicco su "sì" non succede nulla (non si apre il file ppt!), se clicco no mi compare il msg "grazie lo stesso, ciao!", e, quando clicco "ok", poi mi appare un msg con scritto "errore di run-time 424, necessario oggetto". perchè??? grazieeeeeee!!



  • di Big ronnie (utente non iscritto) data: 01/10/2009

    Devi sostituire nella mia macro la riga x = shellexcute........ con la tua x = shellexecute(0, "open", "z:questionario.ppt", "", "", 1).

    per quel che riguarda l'errore, non trova l'oggetto userform1, quindi devi sostituire questo nome con il nome del tuo form che vuoi nascondere.

    ciao big



  • di Natyna (utente non iscritto) data: 01/10/2009

    Big, ho fatto delle modifiche al codice perchè necessitavo di un altro msgbox prima dell'apertura del file ppt e volevo che si aprisse riducendo ad icona excel.. ed ora funziona tutto! solo una cosa: invece di ridurre excel ad icona, è possibile non visualizzare affatto il file .xls, ma solo il msgbox? per quanto riguarda il problema dell'errore 424, temevo che fosse per il nome della userform.. peccato che io non sappia assolutamente come crearla! ti posto il codice.. suggerimenti?? grazie ancora!!
     
    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 "Grazie! Allora, cominciamo!"
         X = ShellExecute(0, "OPEN", "Z:Questionario.ppt", "", "", 1)
      Else
         MsgBox "Peccato! Grazie lo stesso, ciao!"
         Userform1.Hide
    End If
    End Sub



  • di Big ronnie (utente non iscritto) data: 01/10/2009

    Per il primo quesito non credo sia possibile ma se non vuoi far vedere il file di excel perchè non fai tutto con power point?

    per la seconda cosa non ho ben capito cosa vuoi se si risponde di no al quesito.credo che tu non abbia una userform1 nel progetto



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

    L'errore e' dato dal fatto che non trova la userform
    ....userform1.hide vuol dire "chiudi la userform1" ma se non la trova o gli hai cambiato nome o non l'hai creata
    infatti nella tua richiesta iniziale chiedevi di inserire un messaggio all'interno di una userform dove volevi le tue opzioni ma visto e considerato che l'istruzione di big (esattissima) prevede a priori una msgbox dove "scegliere" il comando userform1.hide mi sembra superfluo
    o lo modifichi dando alla userform il nome esatto o cancella quella istruzione
    per quanto riguarda il"far sparire completamente il file" non si puo' almeno che io sappia



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

    Ciao big ben trovato
    abbiamo risposto contemporaneamente
    bye



  • di Natyna (utente non iscritto) data: 01/10/2009

    Grazie ad entrambi! allora.. se clicco "no", vorrei che, dopo il msgbox "grazie lo stesso, ciao!", si chiudesse il file excel.. invece, non accade! non c'è un comando che dica: se clicco o, allora fai apparire questo messaggio e poi fai click sulla "x" di excel (tasto di chiusura)?
    ho provato con "application.windowstate = xlclosed", ma non funziona!



  • di Big ronnie (utente non iscritto) data: 01/10/2009

    Quello che chiedi è la chiusura di excel(x di excel) e non del file.questo lo ottieni scrivendo al posto di userform1.hide il comando application.quit

    ciao big



  • di Natyna (utente non iscritto) data: 02/10/2009

    6 fantastico! ora funziona alla perfezione!! sto facendo altre modifiche al file, sappi che se incontrerò delle difficoltà sarai il primo a cui scriverò.. ihih.. non osare scappare, eh?


  • Concatenazione "if then" e "else" in vba
    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