sound

  • Thread starter Thread starter dougw
  • Start date Start date
D

dougw

I am trying to click on a cell and have it play a wav file.... I have that
part working fine ( I belive )

But when I close excel after playing 1 or more wavs if always ask me if I
want to save changes
and I get the popup after only playing a file...no other changes.
Is there a way around this.... thanks



Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, _
hModule As Long, _
ByVal dwFlags As Long) As Long


Public Function PlayWavFile(WavFile As String) As String
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
PlaySound WavFile, 0, SND_ASYNC Or SND_FILENAME
PlayWavFile = ""
End Function


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Dim WFile As String

WFile = ActiveCell.Value + ".wav"
WFile = ThisWorkbook.Path & "\" & WFile
PlayWavFile (WFile)
End Sub
 
You may want to try an undo

from
PlayWavFile (WFile)
to
PlayWavFile (WFile)
application.Undo
 
The double click event places the selected cell in edit mode. Exiting edit
mode will change the Saved property of the file you are in to false thus
requiring a save. If you add Cancel = True to your existing code you will not
end up in edit mode and that should keep you from needing a save...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Dim WFile As String

Cancel = True
WFile = ActiveCell.Value + ".wav"
WFile = ThisWorkbook.Path & "\" & WFile
PlayWavFile (WFile)
End Sub
 
Thanks Joel and Jim for your replies...

Jim, I tried the Cancel = True, yes it does cancel the edit mode but still
prompts for a save.

Joel, when I added the Application.Undo, the first time I run it I get error
1004 which is an
application-defined or object-defined error.its a catch-all error. So I
trapped the error and
that works... But if I add or change anything somewhere else in the sheet...
than click on
a cell to play the file... it does an undo and removes the last data
inputed.

OK ,will have to dig a little deeper into some programming books see if I
can find something else..

Thanks again to both of you for your replies
 
hmmmmmmmm, Well I am in no way an expert with excel or VBA programming.
This is an update for something I found out on the superinformation highway
( hope that does not date me ... lol )... seems that adding this line stops
it from
asking for the save. ActiveCell.Offset(0, 0).Select. So I added it the end
of my sub:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Dim WFile As String

WFile = ActiveCell.Value + ".wav"
WFile = ThisWorkbook.Path & "\" & WFile
PlayWavFile (WFile)
ActiveCell.Offset(0, 0).Select
End Sub


works like a charm.... thanks again

========================================
 
Back
Top