|
Beitrag aus dem Excel-Forumsarchiv
Betrifft: Akustische Meldung 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 Subzur 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
|