änderungen von per dde-schnittstelle importierten daten dokumentieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Sennah
*
Beiträge: 13
Registriert: Fr, 18.12.2015 08:53

änderungen von per dde-schnittstelle importierten daten dokumentieren

Beitrag von Sennah »

hallo und einen guten abend!

ich hoffe bei folgendem Problem kann mir jemand helfen:

ich lese in zelle A1 sich laufend ändernde Daten per DDE-Schnittstelle ein. was ich nun bräuchte wäre ein makro, nach dessen Betätigung die Daten ab zelle A3 abwärts mitdokumentiert werden. sobald sich der wert in zelle A1 also ändert, soll er in der zelle A3 dokumentiert werden. ändert sich der wert sodann in zelle A1 wiederum, soll er in der zelle A4 dokumentiert werden, der nächste dann in zelle A5 usw.

ist jemand so nett mir mit dem Code für so ein makro zu antworten? (ich bin der Programmierung leider nicht mächtig...)
Andromeda_104
**
Beiträge: 26
Registriert: Di, 12.03.2013 12:46

Re: änderungen von per dde-schnittstelle importierten daten dokumentieren

Beitrag von Andromeda_104 »

Hallo Sennah,

wenn deine Suche noch aktuell ist, dann gehe bitte auf das Thema "RefreshListener" von mir und F3K Total. Ist zwar schon eine Weile her, aber das dortige Makro steht noch zum Download bereit. Du musst es nur an deinen Zellbereich anpassen.

Wenn du Fragen hast, melde dich bitte nochmal.

In jedem Fall ist ein solcher Listener eine sehr gute Wahl, wenn es darum geht, veränderliche Daten in einer Zelle an anderer Stelle fortlaufend zu dokumentieren. Er merkt, wenn sich der Inhalt einer Zelle geändert hat und trägt den Wert dann ein; egal ob per DDE, manuell oder durch Berechnung.

Bei kleinen Schleifenanzahlen reicht die Integer-Variable aus (as integer). Sie zeichnet bis zu -32768/+32767 Schleifen auf. Sollen es aber noch mehr Schleifen sein, dann nimm bitte die Long-Variable (as long); die geht bis zu -2.147.483.648/+2.147.483.647 Schleifen weit.

Ist die Grenze der Schleifen erreicht, dann erscheint: "Unzulässiger Wert o. Datentyp" Überlauf in Makrozeile ncounter = ncounter + 1

Gruß
Andromeda_104
Andromeda_104
**
Beiträge: 26
Registriert: Di, 12.03.2013 12:46

Re: änderungen von per dde-schnittstelle importierten daten dokumentieren

Beitrag von Andromeda_104 »

Anbei das Makro. Um die Werte an eine andere Stelle zu senden, musst du in der Zeile

otargetcell = osheet.getcellbyposition(X,ncounter)

für den Wert X die entsprechende Zieldefinition eintragen. So wäre z.B. (2,ncounter) die Spalte C und (8,ncounter) die Spalte I. Achtung! Spalten beginnen in Makros mit der 0 für die Spalte A. Dasselbe trifft auf Zeilen zu; Zeile 1 ist 0 in der Programmierung.

Die Eintragung beginnt immer ganz oben in einer Spalte. Ich habe leider noch nicht herausgefunden, wie man einen Start weiter unten in der Spalte veranlasst; z.B. bei A10. Ich kann zwar diesen Startpunkt definieren (0,9), aber dann wird nur ein einziger Eintrag dort vorgenommen; die Weiterzählroutine ncounter funktioniert in diesem Fall allerdings nicht.

Dafür reichen meine Kenntnisse noch nicht aus. Vieles probiere ich einfach nach der Versuch-und-Irrtum-Methode ...

Gruß
Andromeda_104
Dateianhänge
Button_fortlaufende Übernahme_A1 nach Spalte B.ods
(9.4 KiB) 143-mal heruntergeladen
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: änderungen von per dde-schnittstelle importierten daten dokumentieren

Beitrag von clag »

Hallo Andromeda_104,

für das von Sennah angefragte verhalten ist ein Listener unbedingt nötig !
Es soll ja automatisch ein Log über jede Änderung der DDE Verknüpfung erstellt werden.
Dein Vorschlag mit Button ist da also nicht so sehr hilfreich.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Andromeda_104
**
Beiträge: 26
Registriert: Di, 12.03.2013 12:46

Re: änderungen von per dde-schnittstelle importierten daten dokumentieren

Beitrag von Andromeda_104 »

... stimmt! Das war wieder der Wald und die Bäume - habe ich irgendwie falsch interpretiert. Dann natürlich mit dem RefreshListener. Ging fälschlicherweise davon aus, dass er bei der "Betätigung" des Makros (Button?) den Log mitschneiden will; also nur immer einen Wert.

Schade, dass Sennah erst jetzt eine Antwort erhält. Das Projekt ist bestimmt schon nicht mehr aktuell.

LG
Andromeda_104
Antworten