Beitrag aus dem Excel-Forumsarchiv
Home Zur Übersicht    

Betrifft: Akustische Meldung
von: Tobias
Geschrieben am: 21.03.2006 10:34:39

Hallo Ihr lieben Experten!

Ist es möglich eine Eingabemeldung (Daten/ Gültigkeit) mit einem Sound zu hinterlegen? Oder gibt es eine andere Möglichkeit zu einer Zelle beim Verlassen oder Auswählen einen Hinweis zu geben.

Grüße und Vielen Dank
Tobias
  


Betrifft: AW: Akustische Meldung
von: Harald E
Geschrieben am: 21.03.2006 11:03:30

Hallo Tobias,

ich lass mich mal von deinem vba-nein nicht beeindrucken ;-)), imho wirst du ohne vba nicht weit kommen.

Diesen Code ins Blattmodul.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" And Target.Value > 5 Then Call LaufwerkARufen
End Sub

Das ist der Auslöser. Nach Drücken der Enter-Taste prüft er, ob A1 die aktive Zelle war und der Wert darin über 5 liegt. Haaalt...noch nicht testen. ;-))

Zuerst musst Du noch ein Modul in die Mappe einfügen und das da reinkopieren (Quellcode von der Herber'schen Excel-CD).

Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Sub LaufwerkARufen()
Dim mucke As String
mucke = "C:\Programme\Windows NT\Pinball\SOUND1.wav"

Call sndPlaySound32(mucke, 1)

End Sub

Nun sollte es funzen. Wenn nicht, musst Du halt eine andere *.WAV- Datei angeben.





Gruss Harald


  


Betrifft: AW: Akustische Meldung
von: Tobias
Geschrieben am: 21.03.2006 11:09:01

...mmmh

Was muss ich da wo eingeben?

:-)


  


Betrifft: AW: Akustische Meldung
von: Harald E
Geschrieben am: 21.03.2006 11:30:27

Hi,

step-by-step

rechte Maustaste auf den Tabellenblattname. Code anzeigen aufklicken.Du bist nun im vba-Editor.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" And Target.Value > 5 Then Call LaufwerkARufen
End Sub

ins rechte Codefenster kopieren.
Was, wo geprüft werden soll ist scheinbar dein Geheimnis, daher lasse ich nur Zelle A1 auf Werte über 5 prüfen ;-))

Sodann drückst du bei gedrückter ALT-Taste die Tasten E und M
Somit hast Du ein Modul erzeugt und ins rechte Code-Fenster folgendes kopieren.

Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Sub LaufwerkARufen()
Dim mucke As String
On Error GoTo 0
mucke = "C:\Programme\Windows NT\Pinball\SOUND1.wav"

Call sndPlaySound32(mucke, 1)

End Sub

Fertich ;-))

Unter mucke ist Pfad und Dateiname der WAV-Datei.
Sollte nur ein Beep zu hören sein, mußt Du auf deinem PC nach vorhandenen *.wv - Dateien suchen und den Pfad- /Dateinamen ändern.
Gruss Harald


  


Betrifft: AW: Zusatz Fehler abfangen
von: Harald E
Geschrieben am: 21.03.2006 12:03:50

Hi,

ist die gesuchte Datei nicht zu finden, kannst Du noch eine Mitteilungsbox und den Programmabbruch wie folgt einbinden.

Sub LaufwerkARufen()
Dim mucke As String

mucke = "C:\Programme\Windows NT\Pinball\SOUND9.wav"

If Dir(mucke) = "" Then
MsgBox "Schei...benkleister. Die Mucke is nich zu finden"
Exit Sub
End If

Call sndPlaySound32(mucke, 1)

End Sub


Gruss Harald


  


Betrifft: AW: Akustische Meldung
von: Tobias
Geschrieben am: 21.03.2006 12:42:34

Hallo Harald!

Klappt schon mal prima - vielen Dank.

Wenn ich jetzt noch wüßte, wie man das für eine Spalte A1:16 schreiben muss und das dann auf größer 0 prüft wäre alles Super.

Danke schon mal.

Grüße tobias


  


Betrifft: AW: Akustische Meldung
von: Harald E
Geschrieben am: 21.03.2006 12:59:04

Hi,

tausche den Code im Blattmodul gegen diesen Code aus.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, Range("A1:A16")) Is Nothing And IsNumeric(Target.Value) Then
If Target.Value > 0 Then Call LaufwerkARufen
End If
End Sub


zur erklärung
Abbruch bei mehr als einer selektierten Zelle.
Wenn aktive Zelle im angegebenen Range liegt und der eingegebene Wert numerisch ist dann
Wenn der Wert größer Null ist, den angegebenen Code aufrufen.

Gruss Harald


  


Betrifft: AW: Akustische Meldung
von: Tobias
Geschrieben am: 21.03.2006 13:13:02

SUPER Vielen Dank!


  


Betrifft: Danke für die Rückmeldung owT
von: Harald E
Geschrieben am: 21.03.2006 13:14:35



Gruss Harald


  


Betrifft: AW: Akustische Meldung
von: Franz S.
Geschrieben am: 21.03.2006 11:12:30

Hallo Tobias,

Hinterlegen der Meldung mit Sound geht meines wissens nicht. Man kann allerdings die Selektion der Zelle per Malro mit einem Beep-Ton verbinden (Beep ist dann ein Systemklang)
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  If Target.Address = "$B$8" Then
    Beep
  End If
End Sub

Beim Auswählen der Zelle einen Hinweis ausgeben. Diesen kannst Du bei Daten/Gültigkeit einstellen. Alternative wäre eine Meldebox, die bei Selektion der Zelle per Makro angezeigt wird.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  If Target.Address = "$B$8" Then
    Beep
  End If
End Sub

Die If-Bedingung fragt hier immer eine Zelle ab. Man kann diese natürlich anpassen um Zellbereiche zu überwachen.

Gruß
Franz