Visualizzare film durante macro
Hai un problema con Excel? 
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
Vuoi Approfondire?