Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: WAVE-Sound abspielen

WAVE-Sound abspielen
20.05.2004 14:41:23
XXL
Hallo - brauche wieder Eure Hilfe!
1. BITTE
Möchte, daß beim Wechsel auf zB die "Tabelle5" ein WAVE-Sound autom. abgespielt wird.
Habe keine VBA-Erfahrung.
Vielleicht könnt Ihr mir dabei bitte helfen.
2. BITTE
Wo gäbe es ein 'Nachschlagwerk' über alle möglichen und 'unmöglichen' Codes was Excel in Verbindung mit WAVE-Sounds betrifft. Gut erklärt (auch für 'VBA-Nieten, wie mich') und gleich heraus-zu-kopieren.
Danke Euch allen im Voraus für diese zwei Antworten.
Liebe Grüße
XXL
Anzeige

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WAVE-Sound abspielen
Bernd
Hallo du Supergröße,
schau mal bei Hajo auf seiner Homepage vorbei (bei VBA)
http://home.media-n.de/ziplies/
Übrigens wäre da noch zu sagen ....


Anzeige
Tolle Lösung oT
Kurt
oT
AW: WAVE-Sound abspielen
20.05.2004 18:18:08
XXL
Hallo Nepumuk
Guter Tipp -
habe den Code in eine eigene Mappe übertragen - es funktioniert aber leider nicht.
Danke
Anzeige
AW: WAVE-Sound abspielen
20.05.2004 18:30:15
Nepumuk
Hallo Robert,
die Sounddateien befinden sich in dem ausgeblendeten Tabelleblatt "Tabelle4". Zum einblenden in den VBA - Editor wechseln die Tabelle4 im Projektexplorer anklicken und im Eigenschaftsfenster auf Visible setzen. Siehe Bild:
Userbild
Eigene Sounds kannst du über Einfügen - Objekt - Aus Datei erstellen, einfach in eine Tabelle einfügen. Den Namen des Objektes siehst du im Namensfenster links in der Bearbeitungsleiste.
Gruß
Nepumuk
Anzeige
Sound abspielen : DANKE an Nepumuk
20.05.2004 19:32:26
XXL
Hallo Nepomuk!
Zwischen "leicht" und "schwierig" git's eigentlich NICHTS - entweder man weiß es, oder man weiß es eben nicht.
Du hattest es gewußt und jetzt weiß ich es auch -
ergodessen ist dieses Beispiel nicht nur für dich, sondern nun auch für mich eben "leicht"!
So - und nun habe ich meiner Euphorie 'freien Lauf gelassen' - ich freue mich halt. DANKE
Liebe Grüße
Robert
Anzeige
AW: WAVE-Sound abspielen
20.05.2004 18:15:10
XXL
Hallo Bernd!
1.) ... ich bin keine "Supergröße"
2.) auf der Hajos HP habe ich vergebens vorbeigeschaut (bezgl. meiner "1. BITTE")
3.) wenn du meinen Namen wissen willst: ich heiße Robert
4.) bin bzgl. meiner "BITTE" leider nicht weitergekommen
5.) trotzdem danke für deine Reaktion
XXL (Robert)
Anzeige
AW: WAVE-Sound abspielen
20.05.2004 15:47:59
Thomas
Hi
In ein 'normales' Modul ...


Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" ( _
 ByVal lpszSoundName As StringByVal uFlags As LongAs Long
Function PlayWave()
    Call sndPlaySound("c:\windows\media\The Microsoft Sound.wav", 1)
End Function


In das Modul 'Diese Arbeitsmappe' ...


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    PlayWave
End Sub


Gruß
Thomas
Risi Thomas Softwareentwicklung
Anzeige
AW: WAVE-Sound abspielen
20.05.2004 18:25:16
XXL
Hallo Thomas!
Bin noch immer am worken - ich krieg es leider nicht hin.
Habe alle deine Anweisungen befolgt und auch den Sound angepasst.
Habe ich vielleicht etwas unterlassen, was nicht explizite angeführt war, weil es für einen VBAler "zu selbstverständlich" ist?
Versetze dich bitte in eine totale "VBA-Niete", wie ich es bin, vielleicht fällt dir etwas ein, was ich falsch mache.
Ich möchte dennoch, daß dies funktioniert.
Liebe Grüße
XXL (Robert)
Anzeige
Sound abspielen: Teillösung VBA
20.05.2004 19:48:22
XXL
Hallo Thomas!
Habe in meine Mappe deinen Code hineinkopiert, den Sound angepasst und die Datei mit Datei/Schließen zugemacht, da sonst mein Excel wieder "480 Stunden" für's Öffnen benötigt (Virenprüfung, Virenprüfung, Vierepr...... - nebenbei - weiß du vielleicht wie ich das ev. abstellen könnte?).
Und als ich diese Datei doch wieder, nun gleichzeitig mit Excel, öffnete war alles klar.
Nun funktioniert's - jedoch spielt natürlich bei jeder Tabelle der gleiche Sound - möchte aber bitte, daß per VBA individuelle Sounds beim Wechseln auf eine 'andere' Tabelle autom. abspielen.
Vielleicht könntest du mir bitte den Code abbilden - und was sonst halt noch wichtig wäre, dazuschreiben was eventuell für einen Laien nicht so selbstverständlich ist.
Danke vielmals für deine Mühe und
liebe Grüße
Robert
Anzeige
Sound abspielen: Teillösung VBA - Nachschlag
20.05.2004 19:57:25
XXL
Hallo Thomas!
... per VBA meinte ich, daß die Sounddateien von WINNT/Media gespeißt werden, und nicht von einer Tabelle - denn sonst könnte ich ja die Lösung von Nepumuk nehmen. (Mir kommt vor, daß das Wechseln zwischen den Tabellen dann nicht so sehr zeitverzögert ist.)
Danke
AW: Sound abspielen: Teillösung VBA - Nachschlag
20.05.2004 20:06:00
Nepumuk
Hallo Robert,
ändere die Prozeduren so:


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Select Case Sh.Index
        Case 1: Call PlayWave("C:\WINNT\Media\ringin.wav")
        Case 2: Call PlayWave("C:\WINNT\Media\ding.wav")
        Case 3: Call PlayWave("C:\WINNT\Media\tada.wav")
    End Select
End Sub


und so:


Public Sub PlayWave(strWaveFile As String)
    Call sndPlaySound(strWaveFile, 1)
End Sub


Gruß
Nepumuk
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
20.05.2004 22:20:44
XXL
Was ist denn jetzt wieder los?
Habe folgendes hineinkopiert:
in "Modul1":
Public Sub PlayWave(strWaveFile As String)
Call sndPlaySound(strWaveFile, 1)
End Sub
in "Diese Arbeitsmappe":

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Select Case Sh.Index
Case 1: Call PlayWave("C:\WINNT\Media\ringin.wav")
Case 2: Call PlayWave("C:\WINNT\Media\ding.wav")
Case 3: Call PlayWave("C:\WINNT\Media\tada.wav")
End Select
End Sub

kommt die Meldung:
"Fehler beim Kompilieren.
Sub oder Function nicht definiert."
Bitte, was habe ich nun wieder falsch gemacht? Die Sounddateien habe ich auch kontrolliert!
Robert
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
20.05.2004 22:44:08
Nepumuk
Hallo Robert,
du musst die Funktion PlayWave gegen die Sub PlayWave noch tauschen.
Gruß
Nepumuk
AW: Sound abspielen: Teillösung VBA - Nachschlag
20.05.2004 23:32:39
XXL
Hallo Nepumuk!
Tut mir leid - ich versteh nur Bahnhof.
Wo ist die "PlayWave" anstelle der "SubPlayWave" ?
Bitte, ich bin kein VBAler - bitte schreib mir ausführlich und vollständig, was ich machen muß, nicht im Telegrammstil - DANKE
"Dann findet vielleich ein blindes Huhn auch ein Korn?"
Würde mich freuen, wenn dies funktionieren würde.
DANKE nochmals im Voraus.
Robert
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
21.05.2004 03:29:32
Nepumuk
Hallo Robert,
diese Funktion:


Function PlayWave()
    Call sndPlaySound("c:\windows\media\The Microsoft Sound.wav", 1)
End Function


löschen!
Diese Sub:


Public Sub PlayWave(strWaveFile As String)
    Call sndPlaySound(strWaveFile, 1)
End Sub


dafür einfügen.
Jetzt klar?
Gruß
Nepumuk
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
21.05.2004 22:20:08
XXL
JETZT IST ALLES KLAR - DANKE NEPUMUK - UND EINEN KL. NACHSCHLAG BITTE:
Nachstehend ein Code-Fragment von der Datei "sound2" aus Hajos HP:
"Case 3 And Range("A1") &lt&gt ByTon
Call sndPlaySound32("C:\WINNT\media\Anweisungen\Versuchen Sie es noch einmal.wav", 1)
ByTon = Range("A1")" ~f~
das heißt, wenn ich es richtig verstanden habe - bei Erreichen der Zahl 3 in A1 durch eine Formel, spielt der eingerichtete Sound.
Wenn ich zB ~f"&gt"f~ voransetze, ergänzt sich der Code von selbst mit dem "Is" - und der Sound spielt eben wenn die Formel grösser als 3 zurückgibt.
Meine Fragen:
Welche Änderungen an diesem Code-Fragment muß ich vornehmen, um aus der Konstanten (3) ein Intervall zu machen (zB Sound soll spielen, wenn der Wert, den die Formel zurückgibt, ~f~ grösser/gleich 2,5 UND kleiner/gleich 4,9 ist.
BZW.
das gleiche Intervall, jedoch nicht mit Formel, sondern bei DIREKTER Eingabe.
Vielen Dank im Voraus lieber Nepumuk.
Robert
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
22.05.2004 07:57:11
Nepumuk
Hallo Robert,
in das Klassenmodul der entsprechenden Tabelle:


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "A1" And Target >= 2.5 And Target <= 4.9 Then Call PlayWave("C:\WINNT\Media\ringin.wav")
End Sub


Gruß
Nepumuk
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
22.05.2004 21:20:29
XXL
Hallo Nepomuk!
Du schreibst "in das Klassenmodul der ENTSPRECHENDEN Tabelle":
Ob ich nun (per Doppelklick natürlich) die Tabelle1 markiere, oder eine andere,
und dann auf Einfügen/Klassenmodul klicke, kommt in jedem Falle jeweils unter "DieseArbeitsmappe" nur "Klasse1" - und deshalb verstehe ich den Terminus "entsprechende Tabelle" leider nicht.
Wenn ich deinen Code dennoch in dieses Klassenmodul hineinkopiere - höre ich leider keinen Sound!
Wenn ich deinen Code in die "Mappe1(Mappe1)" hineinkopiere kommt eine Fehlermeldung!
Mehr kann ich im Moment nicht berichten.
LG
Robert
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
22.05.2004 21:22:24
Nepumuk
Hallo Robert,
einfach einen Rechtklick auf den Tabellenreiter - Code anzeigen. Schon bist du drin.
Gruß
Nepumuk
AW: Sound abspielen: Teillösung VBA - Nachschlag
22.05.2004 21:59:31
XXL
Entweder ich verstehe außer Bahnhof nur mehr Hauptbahnhof -
oder du hattest dich im Posting geirrt -
oder aber du willst mich nun ganz schön auf den Arm nehmen.
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
22.05.2004 22:31:45
Nepumuk
Hallo Robert,
alle Objekte von Excel können einer Klasse zugeordnet werden. Die Klassen beinhalten die Ereignisse der Objekte. Für das Objekt Mappe, Tabelle und Diagrammblatt werden die Module dafür automatisch angelegt. Diese kannst du durch einen Doppelklick im Projektexplorer öffnen oder bei Tabellen und Diagrammen mit einem Rechtsklick auf den Tabellenreiter bzw. das der Mappe durch einen Rechtklick auf das Excelicon neben Datei. Siehe Bild:
Userbild
Das heist, das letzte Programm muss in das Klassenmodul der Tabelle, in der der Sound beim erreichen eines Wertes ertönen soll. Jetzt klarer? Hier wird niemand auf den Arm genommen, schon schwer genug sich mit Excel auseinanderzusetzen.
Gruß
Nepumuk
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
22.05.2004 23:59:18
XXL
Hi Nepomuk!
1.) Danke für deine Geduld
2.) (Versteh' trotzdem nur Hauptbahnhof)
3.) ich gehe davon aus, daß das "Klassenmodul der Tabelle" und "Klasse1" nicht dasselbe ist.
4.) habe deinen Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" And Target >= 2.5 And Target <= 4.9 Then Call PlayWave("C:\WINNT\Media\ringin.wav")
End Sub

in das 'Klassenmodul der Tabelle' hineinkopiert
5.) bekomme die gleiche Fehlermeldung: Fehler beim Kompilieren .....
und das 4. "Target" hat's markiert.
Irgendwas stimmt nicht
LG
Robert
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
23.05.2004 00:15:41
Nepumuk
Hallo Robert,
das ist eine Eigenart von Excel, dass es bei manchen Fehlern die falsche Stelle markiert. Ich nehme stark an, dass du nur die Ereignisroutine für in die Tabelle kopiert hast und den Rest der nötigen Programme nicht. Ich habe dir mal eine Mustermappe gemacht, damit du siehst, wie es funktioniert. https://www.herber.de/bbs/user/6636.xls
Gruß
Nepumuk
Anzeige
AW: Sound abspielen: Teillösung VBA - Nachschlag
23.05.2004 22:55:34
XXL
Danke Nepumuk für die Mustermappe - es funktioniert tadellos.
Liebe Grüße
Robert
(...bis zum Nächstenmal ...)
;
Anzeige
Anzeige

Infobox / Tutorial

WAVE-Sound in Excel abspielen


Schritt-für-Schritt-Anleitung

Um einen WAVE-Sound in Excel per VBA abzuspielen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Rechtsklick im Projekt-Explorer → EinfügenModul.

  3. Füge den folgenden Code in das Modul ein:

    Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    
    Public Sub PlayWave(strWaveFile As String)
        Call sndPlaySound(strWaveFile, 1)
    End Sub
  4. Füge den Code zur Aktivierung des Sounds hinzu: Gehe zu DieseArbeitsmappe und füge diesen Code ein:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        Select Case Sh.Index
            Case 1: Call PlayWave("C:\WINNT\Media\ringin.wav")
            Case 2: Call PlayWave("C:\WINNT\Media\ding.wav")
            Case 3: Call PlayWave("C:\WINNT\Media\tada.wav")
        End Select
    End Sub
  5. Speichere die Arbeitsmappe und teste das Wechseln zwischen den Tabellen. Der entsprechende Sound sollte nun abgespielt werden.


Häufige Fehler und Lösungen

  • "Fehler beim Kompilieren": Dies kann passieren, wenn der Code nicht korrekt eingefügt oder die Funktion nicht richtig deklariert ist. Stelle sicher, dass die Funktion PlayWave als Public Sub deklariert ist und dass sie im gleichen Modul wie der Workbook_SheetActivate-Code steht.

  • Sound wird nicht abgespielt: Überprüfe, ob der Pfad zur Sounddatei korrekt ist. Achte darauf, dass die Datei im angegebenen Verzeichnis existiert und dass sie im WAV-Format vorliegt.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch:

  • Excel-Objekte verwenden: Gehe zu EinfügenObjektAus Datei und füge die Sounddatei direkt in die Tabelle ein. Diese Methode ermöglicht es dir, den Ton manuell abzuspielen.

  • Links zu externen Sounddateien erstellen: Du kannst auch Hyperlinks zu Sounddateien in der Cloud oder auf deinem Computer erstellen, die dann durch Klicken abspielbar sind.


Praktische Beispiele

  1. Schussgeräusch abspielen: Um ein Schussgeräusch abzuspielen, kannst du den Code wie folgt anpassen:

    Case 4: Call PlayWave("C:\WINNT\Media\gunshot.wav")
  2. Individueller Ton pro Tabelle: Du kannst verschiedene Sounds für unterschiedliche Tabellen festlegen, indem du die entsprechenden Pfade in der Select Case-Anweisung anpasst.


Tipps für Profis

  • Fehlerbehebung: Wenn du häufig den Fehler "falsche Antwort Sound" bekommst, überprüfe die Pfade und stelle sicher, dass die Datei im richtigen Format und an der richtigen Stelle ist.

  • Performance: Um die Performance von Excel nicht zu beeinträchtigen, verwende möglichst kurze Sounddateien. Lange Sounds können die Reaktionsgeschwindigkeit beim Wechseln zwischen Tabellen verringern.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Public Sub und Private Sub in VBA?
Public Sub kann von überall innerhalb des Projekts aufgerufen werden, während Private Sub nur innerhalb des gleichen Moduls aufgerufen werden kann.

2. Welche Dateiformate kann ich für Sounds verwenden?
In diesem Tutorial haben wir WAVE-Dateien (WAV) verwendet. Excel unterstützt jedoch auch andere Formate, sofern die entsprechenden Deklarationen vorhanden sind.

3. Kann ich Sounds abspielen, ohne VBA zu verwenden?
Ja, du kannst Sounddateien als Objekte in Excel einfügen und manuell abspielen, aber die Automatisierung mit VBA ist die effizienteste Methode.

4. Wie kann ich mehrere Sounds gleichzeitig abspielen?
Das gleichzeitige Abspielen mehrerer Sounds kann zu Problemen führen. Es ist besser, die Sounds nacheinander abzuspielen oder die Logik so zu gestalten, dass nur ein Sound zur gleichen Zeit abgespielt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige