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...)
änderungen von per dde-schnittstelle importierten daten dokumentieren
Moderator: Moderatoren
-
- **
- Beiträge: 26
- Registriert: Di, 12.03.2013 12:46
Re: änderungen von per dde-schnittstelle importierten daten dokumentieren
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
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
-
- **
- Beiträge: 26
- Registriert: Di, 12.03.2013 12:46
Re: änderungen von per dde-schnittstelle importierten daten dokumentieren
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
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
Re: änderungen von per dde-schnittstelle importierten daten dokumentieren
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.
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
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
-
- **
- Beiträge: 26
- Registriert: Di, 12.03.2013 12:46
Re: änderungen von per dde-schnittstelle importierten daten dokumentieren
... 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
Schade, dass Sennah erst jetzt eine Antwort erhält. Das Projekt ist bestimmt schon nicht mehr aktuell.
LG
Andromeda_104