Avatar billede boro23 Forsker
25. juni 2010 - 08:33 Der er 7 kommentarer og
1 løsning

Lyd i en excelfil

Hjælp ønskes fra eksperter

Kan man integrere en lydfil (valgfri)i en excel og lave en formel i A1, der afspiller lydfilen hvis tallet bliver negativ? Bruger excel 2003
Avatar billede newbieatphp Nybegynder
25. juni 2010 - 16:25 #1
Her kan du finde makrokode til selve afspillingen af en lydfil:
http://j-walk.com/ss/excel/tips/tip59.htm

Og du kan så gøre det, at du indsætter følgende under det arks kode hvori den skal tjekke for om A1 er mindre en nul:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Then
        If IsNumeric(Target) And Target < 0 Then
            'indsæt den kode der skal køre, istedet for næste linie
            MsgBox "Hej", vbOKOnly 'fx. call PlayWAV
        End If
    End If
End Sub


Det gør du evt. ved at trykke ALT+F11 og CTRL+R, så har du VBAProject, hvor du finder dit ark og dobbeltklikker på det, og indsætter koden.
Avatar billede newbieatphp Nybegynder
25. juni 2010 - 16:26 #2
$A$2 skal selvfølgelig være $A$1 hvis det er A1 der skal tjekkes for :)
Avatar billede boro23 Forsker
26. juni 2010 - 22:59 #3
Jeg vender lige tilbage mandag, da jeg skal bruge filen på arbejde. Jeg havde regnet med at kunne indsætte mp3 filen som et objekt og lavet en VBA kode der afspillede filen når celle A1 går i minus eller 0
Avatar billede newbieatphp Nybegynder
27. juni 2010 - 00:40 #4
Jeg har selv afprøvet det, og har ikke rigtig kunne få en mp3 fil til at virke.

Dog virker WAV uden problemer.

Hvis du ønsker mit ark, så smid en postbesked med din mail, så sender jeg det til dig.
Avatar billede boro23 Forsker
28. juni 2010 - 08:15 #5
Du må meget gerne sende en kopi på kimr"snabela"danishcrown.dk
På forhånd tak
Avatar billede newbieatphp Nybegynder
28. juni 2010 - 13:50 #6
fil sendt
Avatar billede newbieatphp Nybegynder
01. juli 2010 - 01:44 #7
Jeg sender dig lige en ny fil.
Samtidig smider jeg lige den kode jeg kom frem til.

Først indsat jeg lydfilen i excel, som jeg ønsker skal afspilles:
Indsæt -> Objekt -> Opret fra fil -> gennemse... (find filen)

For at registrere om celle A1 er mindre end 0, så har jeg følgende i VBAProject under det ark som det drejer sig om:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        If IsNumeric(Target) And Target < 0 Then
            Call PlayWAV
        End If
    End If
End Sub

Under modules har jeg så følgende til at afvikle lyden:

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

Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

og

Sub PlayWAV()
    WAVFile = "Windows Notify.wav" 'udskift Windows Notify.wav med din indsatte lydfil
    Path = TempFolder()
    WAVFile = Path & "\" & WAVFile
    Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
End Sub


Da jeg ikke lige kunne finde en måde at tilgå objektet således det blev afviklet i excel (kunne få den til at åbne lydfilen i WMP), så lavede jeg en ekstra lille ting for at finde placeringen for filen, og dermed kunne afspille det i excel:

Private Declare Function GetTempPath Lib "kernel32" _
Alias "GetTempPathA" (ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long

og

Function TempFolder() As String
    'Get Temp Folder
    Dim fctRet As Long
    TempFolder = String$(255, 0)
    fctRet = GetTempPath(255, TempFolder)
    If fctRet <> 0 Then
        TempFolder = Left(TempFolder, fctRet)
        If Right(TempFolder, 1) = "\" Then
            TempFolder = Left(TempFolder, Len(TempFolder) - 1)
        Else
            TempFolder = ""
        End If
    End If
End Function
Avatar billede boro23 Forsker
20. september 2010 - 19:45 #8
virket kun hvis lydfilen ligger på computeren, lukker  selv spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester