bedingte Benachrichtigung mit sound oder popup

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: bedingte Benachrichtigung mit sound oder popup

von aivengo » Mo, 19.02.2007 19:03

es gibt noch ein PAar unannehmlichkeiten:
1. obwohl ich mein Macro mit dem Ereigniss 'Dokument wurde geändert - Status' verknüpft habe, reagiert er manchmal erst wenn ich Dokument speichere.
2. wenn ich versuche die Hintergrundfarbe mittels
zelle2.CellBackColor = RGB(255,0, 0)
zu ändern, erscheint die Meldung öfters (die Zelle widr dabei durch macro verändert)
3. odoc.store() führt bei mir zur Endlosschleife, die Meldung kommt immer wieder.

Code: Alles auswählen

Sub beepbeep
odoc =Thiscomponent
osheet =odoc.sheets(0)
for z = 1 to 29
zelle = osheet.getcellbyposition(1,z)
zelle2 = osheet.getcellbyposition(3,z)
zelle3 = osheet.getcellbyposition(4,z)
zwert = zelle.getvalue
zwert2 = zelle2.getvalue
zwert3 = zelle3.getvalue
oColumn = zelle.getcelladdress.column
oColumn2 = zelle2.getcelladdress.column
oColumn3 = zelle3.getcelladdress.column
oColumnname=zelle.getColumns.getByIndex(0).getName()
oColumn2name=zelle2.getColumns.getByIndex(0).getName()
oColumn3name=zelle3.getColumns.getByIndex(0).getName()
zellname=ocolumnname & z+1
zellname2=ocolumn2name & z+1
zellname3=ocolumn3name & z+1
If zwert2 <> 0 Then
	If zwert <= zwert2 Then
	 beep
	 zelle2.CellBackColor = RGB(255,0, 0)
	 msgbox(zellname & " is under stopmark " & zellname2,64,"sell")
	 wait 300 'millisekunden ? 
	End if
End if
If zwert3 <> 0 Then
	If zwert >= zwert3 Then
	 beep
	 zelle3.CellBackColor = RGB(0,0, 255)
	 msgbox(zellname & " is over limitmark " & zellname3,64,"by")
	 wait 300 'millisekunden ? 
	End if
End if
next
'odoc.store()
End sub

von Karolus » Mo, 19.02.2007 18:06

Hallo

Zu deiner ersten Frage hätte ich noch eine Ergänzung :
Wenn du in der letzten Zeile im Makro das Dokument speicherst mit :

Code: Alles auswählen

odoc.store()
wird der 'Dokument geändert Status' zurückgesetzt. Zusammen mit der Verknüpfung an das Ereigniss 'Dokument wurde geändert' hast du dann eine automatische Kontrolle bei geöffnetem Dokument.

Gruß Karo

von Karolus » Mo, 19.02.2007 13:48

Hallo
1. Lauft deise Überwachung sobald ich die Tabelle öffne non stop?
Nein, von sich aus noch nicht, du kannst das Makro aber mit dem Ereigniss 'Dokument wurde geändert - Status' verknüpfen.
(-->Extras-->Anpassen-->Ereignisse)
Das startet den Code aber auch nur bei der ersten Änderung im Dokument.
Vielleicht hilft dir da ein 'Event Listener' ? weiter - such mal unter diesem Begriff hier in den Foren .
2. Kann man zusätzlich die Hintergrundfarbe der entsprechenden Zellen beim Zutreffen der Bedingung ändern?
Das geht ganz einfach über eine entsprechende 'bedingte Formatierung', Infos hier:http://www.ooowiki.de/CalcFormatBedingt
Kann man anstatt beep auch eigene .wav einsetzen?
nimm anstatt 'beep' die Codezeile : (Beisp. für Linux Suse 10.2)

Code: Alles auswählen

Shell ("file:///opt/kde3/bin/amarok file:///opt/kde3/share/sounds/KDE_Beep_RingRing.wav ")
ohne Umbruch, - algemeine Syntax :
Shell ("Pfad zum Abspielprogramm [Leertaste] Pfad zur -.wav Datei")

Gruß Karo

von aivengo » Mo, 19.02.2007 09:11

Auf einer Spalte stehen aktuelle Aktienwerte (werden automatisch von Yahoo geholt), auf der anderen Einstiegswerte. Wenn die letzten erreicht werden, möchte ich benachrichtigt werden.
Danke für dein code, ich habe ihn etwas angepasst und ausprobiert, es läuft!
Noch ein Paar Fragen:

1. Lauft deise Überwachung sobald ich die Tabelle öffne non stop?
2. Kann man zusätzlich die Hintergrundfarbe der entsprechenden Zellen beim Zutreffen der Bedingung ändern?
4. Kann man anstatt beep auch eigene .wav einsetzen?

von Karolus » Mo, 19.02.2007 02:04

Hallo

Vielleicht solltest du dein Anliegen mal ausführlicher schildern, ich kann den praktischen Nutzen nicht nachvollziehen ? - Im folgenden ein Makro das die Nachbarzellen A1:A31 und B1:B31 des ersten Tabellenblatts nacheinander vergleicht, und bei Ungleichheit einen Systemton ausgibt und ein entspr. Nachrichtfenster aufpoppt.

Code: Alles auswählen

Sub beepbeep
odoc =Thiscomponent
osheet =odoc.sheets(0)
for z = 0 to 30
zelle = osheet.getcellbyposition(0,z)
zelle2 = osheet.getcellbyposition(1,z)
zwert = zelle.getvalue
zwert2 = zelle2.getvalue
oColumn = zelle.getcelladdress.column
oColumn2 = zelle2.getcelladdress.column
oColumnname=zelle.getColumns.getByIndex(0).getName()
oColumn2name=zelle2.getColumns.getByIndex(0).getName()
zellname=ocolumnname & z+1
zellname2=ocolumn2name & z+1
if zwert <> zwert2 then
beep
msgbox(zellname & " und " & zellname2 & " sind ungleich")
wait 300 'millisekunden ?
end if
end sub
Gruß Karo

bedingte Benachrichtigung mit sound oder popup

von aivengo » So, 18.02.2007 22:47

Hallo,
ich möchte zwei Zellen vergleichen und wenn eine grösseren Wert hat als andere, dann soll die Benachrichtigung erfolgen. Wie geht das?

Nach oben