F3K Total hat geschrieben:Sonntagsflieger hat geschrieben:Der Charme meiner Lösung ist, das kein anderes Programm benötigt wird. Tja, schade ...
Da hast Du natürlich recht und jetzt habe ich einfach mal über Parallels Windows laufen lassen, die entsprechende Libre Office Version installiert und siehe da > Deine Lösung über die neu geschriebene Funktion und das dazugehörige Makro funktioniert einwandfrei. Von daher nochmal tausend Dank an Dich!
Ich würde jetzt allerdings gerne die Funktion etwas modifizieren. Aktuell steht sie so da und funktioniert so auch wunderbar:
Ich würde nun gerne allerdings die Bedingungen erweitern in der Weise, daß der Beep nur ertönen soll wenn in "A1" ein Wert zwischen 5.000 und 10.000 steht. Wie kann ich das am besten bewerkstelligen? Geht das mit Einbindung der "UND" Funktion (habe ich nicht hingekriegt) oder muss dafür Deine "IF_SOUND" Funktion in VBA umgeschrieben/erweitert werden?
Zur Erinnerung hier nochmal der perfekt funktionierende VBA-Code für Deine "IF_SOUND"- Funktion:
Code: Alles auswählen
function IF_SOUND(CELL,Formula,Soundfile)
on error goto errorhandler
sSound1 = F_get_Sound(Soundfile)
if CELL = Formula then
InitSounds(sSound1)
endif
errorhandler:
End function
global oPlayer1
Sub InitSounds(sSound1 as string)
dim oPlayer as Object
If GetGuiType() = 1 Then
oSounMgr = CreateUnoService("com.sun.star.media.Manager_DirectX")
Else
oSounMgr = CreateUnoService("com.sun.star.media.Manager_GStreamer")
End If
If NOT IsNull(oSounMgr) Then
If fileexists(sSound1) Then
oPlayer1 = oSounMgr.createPlayer(sSound1)
oPlayer1.setPlaybackLoop(False)
oPlayer1.setMediaTime(0.0)
oPlayer1.start()
End If
End If
End Sub
function F_get_Sound(Sound1)
dim args(0)
oAppl_url = CreateUnoService("com.sun.star.util.PathSettings")
sTemplateUrl = oAppl_url.Template_Writable(0)
F_get_Sound = sTemplateUrl & "/" & Sound1
end function
Danke schonmal und Gruß!