Visualizzare film durante macro



  • Visualizzare film durante macro
    di FA-BA data: 06/07/2016 23:34:33

    Nella Macro CHE IL BUON Raffaele_53 mi ha fornito in collaborazione con tutti gli altri ( e non lo dimentico), vorrei far visualizzare dei filmati.

    Spiego meglio :
    Se in Pagina GIOCO H1=1 VISUALIZZA 1.GIF ( o altri formati video )
    Se in Pagina GIOCO H1=2 VISUALIZZA 2.GIF e cosi via ma prima di (MsgBox "Fatto.")

    Ho detto che farò donazione e la farò appena possibile ,sono di parola!

    Non credo vi serva il file Excel .... ma se si, lo allego!


     
    Option Explicit
    
    Sub CICLO()
    Dim i As Long, rg As Long
        Application.ScreenUpdating = False
        For i = 1 To ThisWorkbook.Sheets.Count
            If Sheets(i).Name <> "NOTE" And Sheets(i).Name <> "(I.A)" And Sheets(i).Name <> "GIOCO" Then
                With Sheets(i)
                    .Range("G6:G12").Copy
                    Sheets("NOTE").Cells(i, 27).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
                End With
            End If
        Next
        For i = 1 To ThisWorkbook.Sheets.Count
            If Sheets(i).Name <> "NOTE" And Sheets(i).Name <> "(I.A)" And Sheets(i).Name <> "GIOCO" Then
                With Sheets(i)
                    Sheets("NOTE").Range("AA" & i & ":AG" & i).Copy
                    .Range("C6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
                End With
            End If
        Next
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
        Sheets("GIOCO").Activate
        Range("H19").Select
        MsgBox "Fatto."
    End Sub



  • di Vecchio Frac data: 07/07/2016 13:06:41

    Una volta lo avevo fatto pure io.
    Per la GIF è relativamente facile. Per gli altri formati video forse anche ma si deve provare.
    Se non ricordo male, in pratica devi inserire un controllo Web Browser nel foglio, grande da contenere l'immagine, quindi inserire il codice per far "navigare" il controllo WebBrowser.
    Un metodo un po' rozzo, ma funziona.

    Sviluppo -> Modalità progettazione -> Inserisci -> Controlli ActiveX, Altri controlli -> Microsoft Web Browser -> Esci da modalità progettazione
     
    WebBrowser1.Navigate "C:percorsoimmagine.GIF"       
    






  • di FA-BA data: 07/07/2016 16:16:11

    Si mi sta bene ma sarebbe incompleta perché in questo modo avvierebbe sempre lo stesso filmato ma io vorrei avviare il filmato in condizione di....!?

    WebBrowser1.Navigate "C:percorsoimmagine1.GIF" se Pagina GIOCO/H1=1
    WebBrowser1.Navigate "C:percorsoimmagine2.GIF" se Pagina GIOCO/H1=2
    WebBrowser1.Navigate "C:percorsoimmagine3.GIF" se Pagina GIOCO/H1=3



    DI QUESTA ISTRUZIONE CHE NE DITE ? Si può inserire nella macro ?

    =SE(H1="";"";COLLEG.IPERTESTUALE("F:GIOCO"&A1&".gif";H1))



  • di Thyke data: 07/07/2016 20:39:55

    così ad occhio vedo un paio di soluzioni:
    l'istruzione

    "WebBrowser1.Navigate "C:percorsoimmagine.GIF"

    puoi modificarla così

    WebBrowser1.Navigate "F:GIOCO" & Range("A1").Value & ".gif"

    dovrebbe funzionare



  • di Thyke data: 07/07/2016 20:43:40

    la seconda soluzione che trasforma la tua formula:

    =SE(H1="";"";COLLEG.IPERTESTUALE("F:GIOCO"&A1&".gif";H1))

    in codice

    If Cells(1, 8) = "" Then
    Cells(1, 8).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="F:GIOCO" & Range("A1").Value & ".gif", TextToDisplay:="test"
    End If

    vedi tu come implementarlo nel tuo codice

     
    If Cells(1, 8) = "" Then
    Cells(1, 8).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="F:GIOCO" & Range("A1").Value & ".gif", TextToDisplay:="test"
    End If



  • di FA-BA data: 07/07/2016 22:15:49

    dovrei fare un filmato per ogni evento e per me che sono solo è impossibile fare una cosa del genere troverò una soluzione più sintetica. Grazie!



    Non segno come risposta perché mi è ancora utile come applicare filmati ma non nel modo richiesto riformulerò la mia domanda .



  • di fa-ba (utente non iscritto) data: 08/07/2016 23:49:04

    Allora la domanda era giusta ma l'esempio in formula era errato.

    vorrei se in pgina GIOCO la cella H1=1 avvia 1.gif
    H1=2 avvia 2.gif
    H1=3 avvia 3.gif
    Sino H1=7 avvia 7.gif

    1 vittoria
    2 pareggio
    3 sopravvive
    4 muore
    5 elimina
    6 partita vinta
    7 partita persa



  • di Thyke data: 09/07/2016 06:01:58

    non prendere in considerazione questa risposta, si è inserita in anticipo e non vedo come eliminarla :D
     
    Dim gif As Integer
        Dim a As Integer
        For a = 1 To 8
        If Cells(1, 8) = a Then
        gif = Shell("rundll32.exe url.dll,FileProtocolHandler " & ("F:GIOCO" & a & ".gif"), vbNormalFocus)
        End If
        Next



  • di Thyke data: 09/07/2016 06:07:45

    prova questo frammento di codice.

    ti ho scritto solo il codice necessario a far partire una gif animata con il suo programma predefinito (qualsiasi sia) in base al valore contenuto nella cella H1 se questo valore è compreso tra 1 e 7 se la cella è vuota esce dal ciclo se c'è un valore superiore ti da un errore.

    vedi tu dove utilizzarlo in quanto senza file di esempio allegato non posso fare altro che prendere alla lettera quello che scrivi
     
    Dim gif As Integer
    Dim a As Integer
        For a = 1 To 7
        If Cells(1, 8) = "" Then exit for
        If Cells(1, 8) = a Then
        gif = Shell("rundll32.exe url.dll,FileProtocolHandler " & ("F:GIOCO" & a & ".gif"), vbNormalFocus)
        End If
        Next



  • di FA-BA data: 09/07/2016 09:49:13

    Non l'ho ancora provato e la seguente risposta è solo un chiarimento, ora la proverò e farò sapere.
    Spero di dare DISCUSSIONE RISOLTA . Comunque sto cercando di farmi YU-GI-OH fatto in casa.

    Io lo invierei ma nella discussione precedente ,.... in molti hanno preferito rispondere alla cieca vista la complessità dell'Excel....
    E comunque se vuoto apre video e valore es= 0 o oltre 7 non dovrebbe capitare quindi giusto sia errore anche perché il valore lo creo io ( tramite formule) non è un valore immesso manualmente.



  • di FA-BA data: 09/07/2016 09:58:57

    Non accade nulla! Sei sicuro che vada a verifica il contenuto della cella H1 ???




  • di Thyke data: 09/07/2016 10:07:44

    certo che sono sicuro:

    For a = 1 To 7
    If Cells(1, 8) = "" Then exit for
    If Cells(1, 8) = a Then

    la cella (1,8) è "H1"

    a è un valore che va da 1 a 7

    il nome della gif è n.gif (n numero)

    l'unico problema che vedo è che io non ho assegnato il foglio, quello lo devi assegnare tu, io non so come si chiama :D



  • di Thyke data: 09/07/2016 10:19:40

    questa l'ho letta adesso:
    E comunque se vuoto apre video e valore es= 0 o oltre 7 non dovrebbe capitare quindi giusto sia errore anche perché il valore lo creo io ( tramite formule) non è un valore immesso manualmente.

    quindi c'è un video 0 (zero) e potrebbe esserci in futuro un video superiore al sette?

    in questo caso devi dimensionare il ciclo for da 0 a n massimo



  • di Thyke data: 09/07/2016 10:20:34

    dimenticavo, ho provato il codice con miei file e funziona senza problemi



  • di FA-BA data: 09/07/2016 10:30:39

    Pagina GIOCO CELLA H1 .... io non so dove mettere le mani in VB , so solo che serve allo scopo ma non ne capisco nulla ( Paradosso).

    Quindi il tuo codice VB dovrebbe verificare Pagina Gioco cella H1 grazie in anticipo!

    Potrebbero esistere in futuro 0 (zero) e oltre il 7> ma al momento no PERO' se sei così gentile da darmi un codice che sia in grado di essere utile anche in future necessita saresti davvero una bestia dei pc..... un fenomeno grazie grazie e ancora grazie !

    1, riga 1
    8 in ordine alfabetico H giusto???.... allora sto incominciando ha capire. SOTTO SPERAVO CHE ERA COSI   
     
    Dim gif As Integer
    Dim a As Integer
    Sheets("GIOCO")
        For a = 1 To 7
        If Cells(1, 8) = "" Then exit for
        If Cells(1, 8) = a Then
        gif = Shell("rundll32.exe url.dll,FileProtocolHandler " & ("F:GIOCO" & a & ".gif"), vbNormalFocus)
        End If
        Next
    



  • di Raffaele_53 data: 09/07/2016 11:53:31

    Ciao Thyke
    Potresti allegare un file per vedere un esempio?
    Grazie mille

    Ieri sera ho riprodotto >>>h t t p s://www.youtube.com/watch?v=GBAHJSfm8Xg
    Fatto, però qui però si tratta di foto (meglio ancora se fosse filmati) e non riesco.



  • di Thyke data: 09/07/2016 15:36:11

    @ Raffaele_53

    ti ho allegato un file compresso, contiene una cartella dove ci sono 3 gif animate ed un file di esempio xlsm

    nella cella rossa metti un valore compreso tra lo 0 (zero) ed il 2 poi clicca su test1 o test2

    è importante che il file xlsm si trovi nella stessa cartella dei file gif

    ps. non si possono allegare file di dimensioni superiori ad 1 MB, quindi ho dovuto trovare file gif di piccole dimensioni e nonostante tutto mi sono dovuto limitare a 3, in ogni caso per farti vedere come funziona va più che bene

    ciao



  • di FA-BA data: 09/07/2016 16:02:01

    VISTO CHE LA MIA VARIABILE IN H1 VARIA DA 1--->7 IL CODICE MACRO DOVREBBE ESSE QUESTO GIUSTO?
     
    Sub test()
    Dim indirizzo As String
    Dim gif As Integer
    indirizzo = ActiveWorkbook.Path
    For a = 1 To 7
    If Foglio1.Cells(1, 8) = a Then
        gif = Shell("rundll32.exe url.dll,FileProtocolHandler " & (indirizzo & "" & a & ".gif"), vbNormalFocus)
        End If
      Next
    End Sub



  • di Thyke data: 09/07/2016 16:52:48

    si è corretto. Puoi usare il codice così come lo hai modificato rispettando due condizioni:
    La prima è che il foglio che contiene la cella "H1" deve essere il "Foglio1", se il foglio che tu chiami "GIOCO" fosse per ipotesi il 9 devi modificare "Foglio1" con "Foglio9".
    La seconda condizione è che le gif si trovino nella stessa cartella del file che stai usando.

    buon lavoro




  • di FA-BA data: 09/07/2016 17:52:33

    Teoricamente funziona ma quando l'ho inserita "Debug" credo di non aver capito la logica degli

    end if
    end sub
    end with

    Vorrei riuscirci da solo.... ha comprendere!


    Raffaele_53 Tu che hai risposto ha me fai domande?#!..... ti credevo uno degli X-MEN !?


    è possibile verificare se una cella è usata in qualche formula.... ho una formula in w44 e non ricordo se era una bozza o è usata... grazie!



  • di Thyke data: 09/07/2016 18:21:11

    scusa...puoi allegarmi il file su cui lavori? così lo testo, allega quello che ti genera l'errore e ti manda in debug così capisco il perchè non ti funziona..



  • di FA-BA data: 09/07/2016 19:35:01

    Ci sto lavorando sopra per risolvere delle formule in Excel che non sono corrette.... stasera lo invierò max domani.



  • di Raffaele_53 data: 09/07/2016 21:39:51

    Grazie Thyke

    h t t p://www.excelvba.it/Forum/thread.php?f=1&t=10803
    Il file è Prova.xlsm
    Il foglio è protetto

    >>>VISTO CHE LA MIA VARIABILE IN H1 VARIA DA 1--->7
    Secondo me, devi mettere una formula in H1 che in base hai Tuoi calcoli farà apparire i vari numeri 1/2/3/4/5/6/7
    In cella G1 mettere un qualsiasi valore tra 1 e 7

    A questo punto un
     
    Sub Worksheet_Calculate()
    If Cells(1, 7) <> Cells(1, 8) Then
        Cells(1, 7) = Cells(1, 8)
        Select Case Range("H1")
        Case "1"
        'codice
        Case "2"
        'codice
        Case "3"
        'codice
        Case "4"
        'codice
        Case "5"
        'codice
        Case "6"
        'codice
        Case "7"
        'codice
        End Select
    End If
    End Sub



  • di fa-ba (utente non iscritto) data: 09/07/2016 22:57:08

    Ma si può sapere cosa state facendo ?

    Dovrei inserire ....


    Sub test()
    Dim indirizzo As String
    Dim gif As Integer
    indirizzo = ActiveWorkbook.Path
    For a = 1 To 7
    If Foglio1.Cells(1, 8) = a Then
    gif = Shell("rundll32.exe url.dll,FileProtocolHandler " & (indirizzo & "" & a & ".gif"), vbNormalFocus)
    End If
    Next
    End Sub


    in questo sotto... ma non so farlo

    potrei fare due macro distinte .... ma che una poi apra l'altra ...

    non serve file excel serve solo sapere come immettere il codice per i video nelle macro che possiedo tutto qui

     
     
    
    Option Explicit
    
    Sub CICLO()
    Dim i As Long, rg As Long
        Application.ScreenUpdating = False
        For i = 1 To ThisWorkbook.Sheets.Count
            If Sheets(i).Name <> "NOTE" And Sheets(i).Name <> "(I.A)" And Sheets(i).Name <> "GIOCO" Then
                With Sheets(i)
                    .Range("G6:G12").Copy
                    Sheets("NOTE").Cells(i, 27).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
                End With
            End If
        Next
        For i = 1 To ThisWorkbook.Sheets.Count
            If Sheets(i).Name <> "NOTE" And Sheets(i).Name <> "(I.A)" And Sheets(i).Name <> "GIOCO" Then
                With Sheets(i)
                    Sheets("NOTE").Range("AA" & i & ":AG" & i).Copy
                    .Range("C6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
                End With
            End If
        Next
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
        Sheets("GIOCO").Activate
        Range("H19").Select
        MsgBox "Fatto."
    End Sub



  • di Thyke data: 10/07/2016 06:48:10

    @ fa-ba

    non sono un tuo dipendente, ed il sabato sera cerco di avere quel minimo di vita sociale che mi consenta di definirmi umano.
    Il file excel SERVE!, non puoi chiedermi di risolvere un tuo problema se non conosco il problema e dopo aver dato un'occhiata al tuo file posso garantirti che tu di problemi ne hai più di uno.

    Inserendo il mio codice nell'evento "Worksheet_Activate" del foglio4 (GIOCO) ogni volta che si attiva il foglio4 se...se c'è un valore valido nella cella "H1" parte la gif correttamente.
    il problema è...che nella cella "H1" del foglio4 non c'è nessun valore e sembra che tu non abbia previsto nulla per far si che ci fosse un valore in quella precisa cella.

    In conclusione: posso far si che nella cella "H1" ci sia uno specifico valore al termine della macro "CICLO" e se il valore rientra in quelli previsti far si che si avvi una gif...ma quel valore da cosa lo ricavo? dove lo recupero



  • di FA-BA data: 10/07/2016 09:26:15

    La variabile nella cella H1 la sto progettando , non c'era nel file Excel che avete voi.... come già detto ci sto lavorando sopra nel file ho trovato molti errori ( messaggi non corretti a causa di formule , ed altre situazioni che devo sistemare) poi sto disegnando le gif animate in modo tale da poterle vedere in funzione tramite la vostra macro. Come già detto il VB è terra nuova per me (so che serve allo scopo ma non la comprendo)... poi non sei obbligato ha rispondere subito ma quando siete disponibili. NON SIETE SCHIAVI !!!

    Per favore non litighiamo per un giochino....Per me è un passatempo ma ancor di più una soddisfazione personale poter riuscire ha realizzare una cosa mia, finora ho seminato fallimenti ... spero di riuscire in questo.
    Ammetto che non è il massimo progettare un gioco in Excel ma con l'aiuto delle macro ho intravisto una strada che comunque chiede tanto lavoro (formule Excel, bravura nel usare gli spazi per inserire i vari contenuti , immagini , suoni ed animazioni ) Ha voi chiedo solo un aiuto in VB non chiederò mai consigli in Excel, o nel come disegnare se il suono è adatto alla situazione o altro poiché è li la mia soddisfazione nel realizzare. Vi vonsidero AMICI E FRATELLI non discutiamo vi assicuro che appena potrò farò donazione l'ho detto e lo farò!

    HO SISTEMATO ALCUNE COSE ANCHE SE NON è ANCORA PRIVA DI ERRORI
    (Non ho ancora inserito la variabile in H1 la sto progettando "la variabile dipenderà dal risultato previsto e dai personaggi utilizzati") Appena vedrete l'allegato potrete a vostro comodo rispondere !
    LA MIA DOMANDA ERA PREMATURA !
    Cmq ho risoluzione 4k(UHD) quindi se avete HD potreste visualizzare male il contenuto del file.



  • di Thyke data: 10/07/2016 10:27:43

    @ fa-ba

    tranquillo, nessun problema non ho nessuna intenzione di iniziare una discussione che non sia inerente al VBA

    in ogni caso finisci di progettare la tua variabile, implementare il codice è questione di poco, in pratica l'ho già fatto, mi manca giusto quella variabile