Pulsante con effetto sonoro



  • Pulsante con effetto sonoro
    di Mirko (utente non iscritto) data: 16/11/2017 11:00:42

    Salve, non sono un esperto in vba, desideravo sapere come riprodurre un suono premendo un pulsante in excel, in pratica un pulsante con effetto sonoro.
    Ho provato la macro di seguito postata ma sembrerebbe che io non abbia dichiarato correttamente la funzione, potreste aiutarmi ?
    Vi ringrazio anticipatamente
     
    Declare PtrSafe Function sndPlaySound Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
    ByVal uFlags As Long) As Long
    
    
    Sub Apri_File()    
    
        If Application.CanPlaySounds Then
               Call sndPlaySound32("D:198397_ani-music_ani-spoons-slap-3a.wav", 0)
        End If
    End Sub



  • di alfrimpa data: 16/11/2017 12:39:34

    Ciao Mirko

    Ma hai Excel a 64 bit?

    Alfredo





  • di mirko (utente non iscritto) data: 16/11/2017 12:46:09

    Si Alfredo.



  • di oregon (utente non iscritto) data: 16/11/2017 13:26:42

    Se l'hai dichiarata con il nome

    sndPlaySound

    perchè la chiami con

    sndPlaySound32

    ??



  • di mirko (utente non iscritto) data: 16/11/2017 14:17:29

    Hai ragione oregon, grazie per il contributo, in effetti avevo modificato la prima parte, per adattarla al 64 bit e non ho fatto caso a questa, comunque non va lo stesso.



  • di oregon (utente non iscritto) data: 16/11/2017 17:25:15

    Cioè?

    Adesso cosa hai scritto?

    Cosa vuol dire "non va lo stesso"? Cosa succede esattamente?



  • di Oscar (utente non iscritto) data: 16/11/2017 18:44:03

    Ciao Oregon prova con questa va sia a 32 che a 64 bit
    ciao Oscar
     
    Questa la metti in un Modulo
    
    Option Explicit
    #If Win64 Then
         Private Declare PtrSafe Function sndPlaySound _
             Lib "winmm.dll" Alias "sndPlaySoundA" _
             (ByVal lpszSoundName As String, ByVal uFlags As LongLong) As LongLong
     #Else
         Private Declare Function sndPlaySound _
             Lib "winmm.dll" Alias "sndPlaySoundA" _
             (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
     #End If
    Public Sub mEseguiSuono(ByVal sNomeFile As String)
      Dim W  As Variant
      W = sndPlaySound(sNomeFile, 1)
    End Sub
    
    
    Questa nel pulsante
    
    Private Sub CommandButton1_Click()
    mEseguiSuono ("C:SoundWin.wav") '<<<<<<<<<<-----------Modificare l'indirizzo del tuo file wav
    End Sub



  • di oregon (utente non iscritto) data: 16/11/2017 18:50:34

    @Oscar ... non sono io che ho posto il problema ...



  • di Oscar (utente non iscritto) data: 16/11/2017 18:56:25

    Ok Oregon scusa mi accorgo che è di Mirco
    Ciao Oscar



  • di mirko (utente non iscritto) data: 17/11/2017 00:12:16

    Grazie Oscar per la soluzione postata, funziona alla perfezione, ringrazio comunque tutti e vi faccio i complimenti per la competenza mostrata, complimenti bella squadra.