Condividi:        

musica con macro excel

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

musica con macro excel

Postdi wallace&gromit » 15/10/14 13:22

ciao a tutti,
vorrei iniziare un progetto piuttosto ambizioso che consiste nel gestire la musica che viene passata durante le partite di hockey su ghiaccio.
Le situazioni che si presentano sono 3:
- interruzione di gioco (in genere tra i 20 e i 30 secondi)
- gol (ovviamente solo i nostri - quelli degli avversari sono normali interruzioni di gioco :aaah )
- pausa tra due tempi

Il programma dovrà gestire questi vari momenti.
Per il gol non c'è problema riesco a richiamare il suono giusto.
Per la pausa ci vuole un sistema che lanci successivamente i brani che ho nella playlist apposita (ho già uno spunto di flash per gestire la durata dei brani, penso che lavoricchiandoci dovrei arrivare ad una soluzione.
Per le interruzioni la cosa si fa complicata perchè vorrei misurare il tempo trascorso e a seconda dei casi ripetere il brano a partire da un nuovo punto di inizio. Per esempio lancio il brano wakawaka, all'inizio ci mette un po' ad entrare nel vivo e magari la partita riprende e devo interromperlo presto. All'interruzione successiva vorrei ripartire direttamente con il ritornello.
Se invece l'interruzione è stata lunga il brano è passato oltre il punto previsto del ritornello vorrei che si passasse al brano successivo. Questo dovrebbe succedere in automatico anche nel caso in cui l'interruzione duri più del brano.

Qui potete trovare quello che ho fatto finora

http://www.filedropper.com/musica

In generale c'è un piccolo problema: quando parte media player perdo il controllo da excel e devo fare due volte clic, uno per tornare in excel e uno per avviare la macro con il pulsante "stop", si può ovviare?
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Sponsor
 

Re: musica con macro excel

Postdi Zer0Kelvin » 15/10/14 16:09

Ciao.
Solo un possibile spunto.
Penso che potresti, invece di utilizzare WMP come programma esterno, inserire un controllo Windows Media Player in un foglio ed utilizzare quello (menu Sviluppo->Inserisci->Altri controlli).
Non ne conosco l'uso, in realtà, ma posso presumere che sia una soluzione più flessibile (e rimarresti sempre su Excel).
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: musica con macro excel

Postdi Anthony47 » 15/10/14 22:09

Ho fatto in passato alcuni esperimenti usando il controllo MediaPlayer (quello suggerito da Zer0K, che tu avevi gia' usato, vedi viewtopic.php?f=26&t=98934) per un progetto di presentazione che miscela video e immagini.
Il controllo consente di gestire il brano, lo stato (play, pausa, rewind, ...; es Foglio1.WindowsMediaPlayer1.Controls.Pause), il tempo trascorso da inizio brano (lettura e scrittura; es CurTime = Foglio1.WindowsMediaPlayer1.Controls.currentPosition), il volume (es Foglio1.WindowsMediaPlayer1.settings.volume = 100) e molto altro ancora; la descrizione la trovi qui: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
All' avvio (ad esempio con l' istruzione Foglio1.WindowsMediaPlayer1.Controls.Play) il controllo non prende il focus; se la tua procedura e' diversa puoi riportare il focus su excel ad esempio con ActiveWindow.RangeSelection.Select
E' solo uno spunto, ma conoscendoti so che andrai lontano...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: musica con macro excel

Postdi wallace&gromit » 26/11/14 23:22

Eccomi di ritorno!
ci ho messo un po' ad elaborare questo file, ma dopo l'incitamento di Anthony non potevo tirarmi indietro.
Il lavoro è quasi terminato ed è comunque già stato sperimentato con successo durante alcune partite.
Ho trovato alcuni ostacoli, tra cui il fatto di riconoscere i nomi dei brani, ora li ho scritti tutti senza spazi e così funziona.

A meno che abbiate anche voi un figlio che gioca ad hockey dubito che vi possano servire tutte le funzioni che vi sono contenute, ma se qualcuno dovesse volere suonare musica da excel vi può trovare vari spunti.
In particolare allego qui sotto una serie di codici che permettono di lanciare la musica contenuta nel foglio di lavoro "playlistPausa"; alla fine di ogni brano sfuma e passa automaticamente al prossimo. Giunto all'ultimo riprende dall'inizio.
Premendo una seconda volta il toggleButton la musica sfuma e si spegne.
Per funzionare necessita due lettori WindowsMediaPlayer sul foglio "menu" che si chiamano audio1 e audio2.
Inoltre i singoli brani devono essere inizializzati (per il codice elencato basta che in colonna G della playlist vi sia il tempo della fine del brano in secondi)
Codice: Seleziona tutto
Dim QBrani

Option Explicit

Private Sub ToggleButton3_Click()
    If ToggleButton3.Value = True Then
        QBrani = Worksheets("playlistPausa").Cells(Rows.Count, "C").End(xlUp).Row - 1
        Call riprod2("P", "playlistPausa", QBrani)
    Else
        Call chiudi2
    End If
End Sub


Codice: Seleziona tutto
Dim QBrani



Sub riprod2(ColonnaRiprod, QualePlaylist, QuantiBrani)                     'tasto pausa: lancia ciclo continuo di musica
abbassato1 = 0
abbassato2 = 0

Worksheets("menu").Range(ColonnaRiprod & 4) = 1

riprendi:
If Worksheets("menu").Range(ColonnaRiprod & 4) = 0 Then 'impedisce di continuare il ciclo se stop lo ha impostato su 0
    Exit Sub
End If

lettore = Worksheets("menu").Range(ColonnaRiprod & 3)    'legge quale lettore deve partire

Brano = Worksheets("menu").Range(ColonnaRiprod & 2) + 1  'correzione solo per via della riga di titolo nella playlist
vol = Worksheets(QualePlaylist).Cells(Brano, 8)
Iniz = Worksheets(QualePlaylist).Cells(Brano, 4)
fine = Worksheets(QualePlaylist).Cells(Brano, 7)
Perc = ThisWorkbook.Path & "\" & Worksheets(QualePlaylist).Cells(Brano, 2) & "\"  'percorso del file"
FileN = Perc & Worksheets(QualePlaylist).Cells(Brano, 3)                          'nome del file

If lettore = 1 Then                         'sarebbe tutto più semplice se si potesse impostare audio1 come variabile!!!
    Foglio1.audio1.URL = FileN
    Foglio1.audio1.settings.volume = vol
    Foglio1.audio1.Controls.currentPosition = Iniz
    Foglio1.audio1.Controls.Play
    i = 0.5                                 'se il lettore1 è subentrato ora, abbassa il volume di 2
        Do While i > -0.1
        OraAttuale = Timer
            Do While Timer < OraAttuale + 1
            DoEvents
            Loop
        Foglio1.audio2.settings.volume = abbassato2 * i
        i = i - 0.1
        Loop
    Foglio1.audio2.Controls.stop            'ferma del tutto il lettore 2
    OraAttuale = Timer
        Do While Timer < OraAttuale + 60    'se questo brano è passato per almeno 1 min predispone per nuovo brano se interrotto riprenderà con lo stesso brano
            If Worksheets("menu").Range(ColonnaRiprod & 4) = 0 Then 'impedisce di continuare il ciclo se stop lo ha impostato su 0
            Exit Sub
            End If
        DoEvents
        Loop
    nuovoBrano = (Brano - 1) Mod QuantiBrani + 1    'ricomincia da 1 dopo 60
    Worksheets("menu").Range(ColonnaRiprod & 3) = 2          'prepara il lettore2 e memorizza volume attuale
    ActiveWorkbook.Save
    Worksheets("menu").Range(ColonnaRiprod & 2) = nuovoBrano
    OraAttuale = Timer                      'se il brano si avvicina alla fine (1 min tolto per il passaggio precedente) inizia a sfumare
        Do While Timer < OraAttuale - 60 + fine - 20 - Iniz
        DoEvents
        Loop
    i = 0.9                                 'sfuma da volume pieno a metà
        Do While i > 0.6
        OraAttuale = Timer
            Do While Timer < OraAttuale + 1
            DoEvents
            Loop
        Foglio1.audio1.settings.volume = vol * i
        i = i - 0.1
        Loop
    abbassato1 = Foglio1.audio1.settings.volume
    GoTo riprendi                               'lancia il lettore2
End If

If lettore = 2 Then
    Foglio1.audio2.URL = FileN
    Foglio1.audio2.settings.volume = vol
    Foglio1.audio2.Controls.currentPosition = Iniz
    Foglio1.audio2.Controls.Play
    i = 0.5                                 'se il lettore1 è subentrato ora, abbassa il volume di 2
        Do While i > -0.1
        OraAttuale = Timer
            Do While Timer < OraAttuale + 1
            DoEvents
            Loop
        Foglio1.audio1.settings.volume = abbassato1 * i
        i = i - 0.1
        Loop
    Foglio1.audio1.Controls.stop            'ferma del tutto il lettore 1
    OraAttuale = Timer
        Do While Timer < OraAttuale + 60    'se questo brano è passato per almeno 1 min predispone per nuovo brano se interrotto riprenderà con lo stesso brano
            If Worksheets("menu").Range(ColonnaRiprod & 4) = 0 Then 'impedisce di continuare il ciclo se stop lo ha impostato su 0
            Exit Sub
            End If
        DoEvents
        Loop
    nuovoBrano = (Brano - 1) Mod QuantiBrani + 1    'ricomincia da 1 dopo 60
    Worksheets("menu").Range(ColonnaRiprod & 3) = 1          'prepara il lettore1 e memorizza volume attuale
    ActiveWorkbook.Save
    Worksheets("menu").Range(ColonnaRiprod & 2) = nuovoBrano
    OraAttuale = Timer                      'se il brano si avvicina alla fine (1 min tolto per il passaggio precedente) inizia a sfumare
        Do While Timer < OraAttuale - 60 + fine - 20 - Iniz
        DoEvents
        Loop
    i = 0.9                                 'sfuma da volume pieno a metà
        Do While i > 0.6
        OraAttuale = Timer
            Do While Timer < OraAttuale + 1
            DoEvents
            Loop
        Foglio1.audio2.settings.volume = vol * i
        i = i - 0.1
        Loop
    abbassato2 = Foglio1.audio2.settings.volume
    GoTo riprendi                               'lancia il lettore1
End If


End Sub

Sub chiudi2()                                   'seconda pressione dei toggle buttons: sfuma entrambi i lettori
volumeAtt1 = Foglio1.audio1.settings.volume
volumeAtt2 = Foglio1.audio2.settings.volume
Worksheets("menu").Range("P4") = 0              'impedisce che il ciclo riprodPausa riprenda
Worksheets("menu").Range("R4") = 0              'impedisce che il ciclo riprodPausa riprenda

i = 0.9
Do While i > -0.1
    OraAttuale = Timer
    Do While Timer < OraAttuale + 0.3
    DoEvents
    Loop
Foglio1.audio1.settings.volume = volumeAtt1 * i
Foglio1.audio2.settings.volume = volumeAtt2 * i
i = i - 0.1
Loop

Foglio1.audio1.Controls.stop
Foglio1.audio2.Controls.stop

End Sub


sto cercando di attivare un link con tutta la cartella zippata, per chi lo volesse provare, ma sto avendo un po' di difficoltà, se non funziona cerco un'alternativa e ve lo posto successivamente.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi wallace&gromit » 27/11/14 10:41

Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi Anthony47 » 27/11/14 12:15

Bene!
Non ho ancora scaricato il file pubblicato, ma mi pare che il codice abbia due blocchi uguali, uno per audio1 e l' altro per audio2; credo che potresti semplificare con un iniziale
Codice: Seleziona tutto
If lettore = 1 then Set myLett=Foglio1.audio1 else Set myLett=Foglio1.audio2

E poi usare
Codice: Seleziona tutto
myLett.URL=FileN
'etc etc

Come pure, col tempo e se la necessita' permane, puoi portare su una Sub a se' stante qualche funzione, tipo fade in e fade out.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: musica con macro excel

Postdi wallace&gromit » 27/11/14 15:06

Anthony47 ha scritto:If lettore = 1 then Set myLett=Foglio1.audio1 else Set myLett=Foglio1.audio2
ecco! era così semplice! io ho provato cercando di memorizzare come variabile solo il numero, invece si può lavorare sul blocco.

Chissà cosa trovi nel resto del file (è parecchio pesante da scaricare perchè ho zippato tutto compreso le musiche).

Per il fade in e fade out per il momento non mi disturba, è vero che si ripete in vari codici, ma certe volte è trattato in modo diverso, quindi per ora lo terrei così.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi Anthony47 » 27/11/14 19:51

ecco! era così semplice!
E chi l'ha detto che era semplice :D :?:

Ho interrotto il download a 500 Mbyte; mancava molto?? O era andato in tilt il mio pc?

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: musica con macro excel

Postdi ricky53 » 28/11/14 00:54

Ciao,
è andata: scaricato 847 e rotti Mb ... caspita che fatica.

Adesso non posso aprire e vedere i vari file ... vista l'ora. A risentirci domani.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: musica con macro excel

Postdi wallace&gromit » 28/11/14 08:05

Per chi non avesse la pazienza di Ricky allego solo il file excel:
http://www.filedropper.com/musica11
ovviamente non funzionerà a dovere perchè non trova la musica, ma almeno si vedono le macro.
Con i consigli di Anthony sono arrivato all'upgrade numero 11

P.S. figuratevi quanto ci ho messo con l'upload degli 847 MB!
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi wallace&gromit » 16/01/15 14:48

Ho un problema con il file creato:
ho usato diversi pulsanti interruttore per lanciare le musiche.
Senza una ragione che riesco a spiegarmi quegli interruttori ora non funzionano più (proprio il programma non li riconosce più come tali!)
Se necessario allego il file, ma magari potete suggerirmi un tentativo da fare?
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi Anthony47 » 16/01/15 15:17

Un aggiornamento Microsoft datato Dicembre 2014 puo' creare problemi alla gestione di "Pulsanti" e "Form" usati all' interno di Excel, Word e altri Applicativi Office.
L' anomalia puo' manifestarsi tramite messaggi di errore, o semplicemente i pulsanti non funzionano piu'.

Procedura di recupero
Per resettare la situazione di errore seguire queste istruzioni:
1. Chiudere Excel, Word, PowerPoint
2. scaricate ed eseguite questo file .bat
https://www.dropbox.com/s/9hkht1snq1mht ... 2.bat?dl=0
3. Verra' eseguito rapidamente uno script che cancella alcuni file (*.exd) all' interno del vostro pc
4. Fine
Procedura sviluppata sulla base delle informazioni pubblicate su blog Microsoft: http://blogs.technet.com/b/the_microsof ... ates-.aspx

La procedura genera un file "pippoppp.txt" tra i vostri Documenti, utile solo a scopi di debug.

Prova e fai sapere

Edit: il ".bat" "risana" il singolo Pc, quindi e' da eseguire su ogni PC che ha avuto l' aggiornamento.
L' esecuzione del .bat su Pc che non hanno quel problema non causa nessuna anomalia.
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: musica con macro excel

Postdi wallace&gromit » 16/01/15 15:30

perfetto!
Il bello è che ho visto di sfuggita che davi questo consiglio in qualche post precedente e l'ho ignorato bellamente!

Morale: MAI ignorare i suggerimenti di Anthony

P.S. tra l'altro il file che ho prodotto sta sempre funzionando alla grande, anche perchè è stato installato su un portatile apposito, sconnesso dalla rete (e quindi immune ad aggiornamenti selvaggi)
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi wallace&gromit » 20/01/15 16:00

Il mistero si infittisce:
grazie alla procedura di Anthony ho sbloccato i pulsanti sul mio PC.
Avventatamente ho copiato il file nuovo sul portatile che fino a lì funzionava.
Da lì via il nuovo file non funziona più, pur eseguendo la procedura di debug.
Il caso è strano perchè lo stesso file sulla stessa chiavetta funziona su due PC: lavoro e casa, ma non sul portatile (tutti win7, file salvato in xls, lavoro ho sia 2013 che 2003 e funziona su entrambi, casa solo 2013 e funziona, portatile solo 2003 e non funziona).
Infine la cosa strana è che un file in versione precedente funziona anche sul portatile, quindi non è un problema di debug.

La cosa che ho notato è che sui file funzionanti faccio clic destro sul pulsante e vedo le caratteristiche del ToggleButton, sul file corrotto invece no, vedo le impostazioni del foglio.

Nota bene che ho provato a rinominare il file in tutte le salse ripartendo da versioni funzionanti sui PC e anche a cambiare i nomi dei pulsanti sempre con lo stesso risultato.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi Anthony47 » 20/01/15 19:25

Ma il .bat lo hai eseguito su ognuno dei pc? Perche' l' aggiornamento Microsoft ha "inquinato" i sui "Controlli" dei singoli Pc, e che vengono caricati all' esecuzione del file.

Per chiarezza lo scrivo anche sull' altro messaggio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: musica con macro excel

Postdi wallace&gromit » 20/01/15 22:14

Sì il .bat l'ho eseguito. Infatti altre versioni del file (dei backup precedenti) funzionano correttamente.
È la versione più aggiornata che non funziona. L'originale di questo file è sviluppato sul PC di casa, e ad un dato momento mi presentava l'errore, ora risolto.
Sul portatile girava la versione precedente senza problemi.
Salvando la versione nuova del file il portatile presentava l'errore su tutti i file, ho lanciato il .bat, che mi ha risolto per i backup, ma non per il nuovo file, che continua a non funzionare, malgrado che io resca a far funzionare quello stesso file sugli altri PC.
Purtroppo il passaggio dallo stadio del backup al file nuovo contiene molte piccole modifiche che non vorrei dovere rifare (anche perchè non me le ricordo tutte!
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi Anthony47 » 21/01/15 02:10

Mah... Se hai modificato lo stesso file un po' su 2003 un po' su 2013 non escludo che ci siano Controlli nelle due versioni che non sono tra loro compatibili.
Intanto guarda nel vba, Menu / Strumenti /Riferimenti, se hai dei componenti dichiarati "MANCANTE".

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: musica con macro excel

Postdi wallace&gromit » 21/01/15 10:39

Anthony47 ha scritto:Menu / Strumenti /Riferimenti, se hai dei componenti dichiarati "MANCANTE"
trovo una lista interminabile di cui solo i prime 7 hanno una spunta, ma non vedo differenze tra le versioni in cui poi i pulsanti funzionano e quelle in cui non lo fanno.
La situazione sul portatile è questa:
-file di backup precedenti, i pulsanti funzionano e posso crearne dei nuovi che funzionano anch'essi
-file nuovo salvato a partire dall'originale che sul PC ha dovuto subire l'aggiustamento di .bat, i pulsanti non funzionano e anche se ne creo di nuovi non funzionano.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi wallace&gromit » 21/01/15 11:27

Update: quello che funziona per ora è salvare il file originale senza pulsanti e crearne di nuovi.
In questo modo per ora sono più o meno a posto, ma se fosse possibile risolvere il problema in modo più radicale sarebbe meglio.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: musica con macro excel

Postdi Anthony47 » 21/01/15 14:35

Quindi, mi pare, che il problemone sia sul portatile con XL2003, quello "di produzione", che non ha subito aggiornamenti, se gli passi un file generato da un Pc che ha avuto l' aggiornamento... Giusto? Questo potrebbe rafforzare l' ipotesi che l' aggiornamento ha introdotto Controlli non compatibili all' indietro, che sul Portatile vengono trasformati in "Oggetti" non programmati.

Su questo portatile ci sono eventualmente dei riferimenti vba marcati "Mancante"?

Quale tipo di pulsanti, se inseriti in un file, ti crea problemi?

Sia chiaro, io navigo nel buio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "musica con macro excel":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti