automatisierte Speicherung von Zellinhalten bei Änderungen

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

Moderator: Moderatoren

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

automatisierte Speicherung von Zellinhalten bei Änderungen

Beitrag von Andromeda_104 »

Folgende Aufgabe dürfte nur mit einem Makro zu lösen sein. Leider verfüge ich nicht über die entsprechenden Programmierkenntnisse zur Erstellung eines Codes.

Im Feld A1 wird fortlaufend eine Berechnung mit DDE-Grundlage ausgeführt und bei jedem neuen DDE-Wert ändert sich folglich auch das Ergebnis.

Diese Ergebnisse sollen in der Spalte B fortlaufend automatisch eingetragen werden; von B1:B1000000. Also erstes Ergebnis in B1, zweites Ergebnis in B2, drittes Ergebnis in B3 u.s.w.

Dabei könnte es 2 Arten von Auslösungen geben. Zum einen nach einem festen Zeitschema (z.B. alle 5 Sekunden) und zum anderen nur bei einer Änderung des Zellinhaltes von A1.

Es wäre schön, wenn sich ein Ansatz dafür finden lässt.

Habt Dank fürs Lesen ... Ronny


Thema verschoben nach OOo Basic und Java, wo alle Themen zur Basic-Programmierung hingehören.—lorbass, Mod
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: automatisierte Speicherung von Zellinhalten bei Änderung

Beitrag von F3K Total »

Hallo,
anbei eine Datei mit einem Makro mit sogenanntem "RefreshListener".
Der "merkt" wenn sich in der ersten DDE-Verknüpfung der angehängten Datei der Inhalt geändert hat.
Dann trägt das Makro den geänderten Wert in die Spalte B ein.
Du musst
  • die Datei öffnen
  • Makros zulassen
  • deinen DDE-Link in Zelle A1 hineinkopieren
  • die Datei schliessen
  • die Datei öffnen
  • Makros zulassen
  • Link zur externen Datei aktualisieren: Ja anklicken
Jetzt kannst Du in der Quelle Änderungen vornehmen und sehen was in der Datei DDE_target_upload.ods passiert.
Ab hier brauchst Du nur noch
  • die Datei öffnen
  • Makros zulassen
  • Link zur externen Datei aktualisieren: Ja anklicken
Viel Spaß damit
Gruß R
Dateianhänge
DDE_target_upload.ods
(10.97 KiB) 51-mal heruntergeladen
Andromeda_104
**
Beiträge: 26
Registriert: Di, 12.03.2013 12:46

Re: automatisierte Speicherung von Zellinhalten bei Änderung

Beitrag von Andromeda_104 »

Hallo R.,

vielen Dank für deine schnelle und verlässliche Hilfe. Das Makro funktioniert hervorragend. Toll!

Wurde es von dir jetzt nur für A1 nach Spalte B konzipiert oder lässt es sich bei Bedarf auch weiter anpassen? Also zum Beispiel für A1 nach Spalte C oder wenn in mehreren Feldern (A1, A10, A15) die Ergebnisse auf diese Weise in separate Spalten geschrieben werden sollen (nach Spalte E, F und G)?

Ich bin bisher nur mit Formeln aus OOCalc-Bordmitteln umgegangen und habe eben von Makros keine Ahnung. Daher kann ich auch nicht erkennen, ob dein Makro erweiterbar ist oder eben nicht. Ich hoffe, dass ich dich nicht nerve mit meinem Nachfragen. Ich würde dein Makro dann nämlich gerne in einem weiteren Schritt in einem anderen Projekt zum Einsatz bringen, in welchem mehrere Zellen gleichzeitig überwacht werden sollen und die Ergebnisse nach gleicher Manier in die entsprechende Anzahl Spalten geschrieben werden.

Danke für deine Geduld und liebe Grüße ... Ronny
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: automatisierte Speicherung von Zellinhalten bei Änderung

Beitrag von F3K Total »

Moin,
Andromeda_104 hat geschrieben:A1, A10, A15) die Ergebnisse auf diese Weise in separate Spalten geschrieben werden sollen (nach Spalte E, F und G)
Ja auch das geht, wenn Du weißt was du tust.
Gib mir noch einmal die genauen Lagen der DDE-Verknüpfungen und die Spalten in die sie sollen, am Besten mit einem Beispieldokument, dann kann ich etwaige Überschriften berücksichtigen.

Gruß R

Edit: Habe jetzt die drei, wie oben angegeben, eingepflegt und in den Makros beschrieben, da kannst Du dann die Zellen und Spalten auch anpassen.
Wichtig: DDE-Verknüpfungen in der Reihenfolge A1;A10;A15 einfügen.
Dateianhänge
DDE_target_upload2.ods
(9.24 KiB) 54-mal heruntergeladen
Andromeda_104
**
Beiträge: 26
Registriert: Di, 12.03.2013 12:46

Re: automatisierte Speicherung von Zellinhalten bei Änderung

Beitrag von Andromeda_104 »

Hallo R.,

danke für deine Rückmeldung und deine Hilfe. Ich habe mir jetzt alles angeschaut und die Quell-Felder sowie Zielspalten ermittelt. Das Projekt besteht aus 2 Tabellen. Die Tabelle 1 ist die Quelle und die Tabelle 2 das Ziel. Die automatischen Eintragungen in den entsprechenden Spalten sollen jeweils ab der 4. Zeile erfolgen! Überschriften oder dergleichen gibt es nicht. Es handelt sich bei beiden Tabellen um eine reine Zahlen-/Berechnungsoberfläche.

von Quell-Tabelle 1 nach Ziel-Tabelle 2:

G3 nach Sp. A
G4 nach Sp. B
G5 nach Sp. C
G6 nach Sp. D
G7 nach Sp. E
G8 nach Sp. F
G9 nach Sp. G
G10 nach Sp. H
G11 nach Sp. I
G12 nach Sp. J

H3 nach Sp. M
H4 nach Sp. N
H5 nach Sp. O
H6 nach Sp. P
H7 nach Sp. Q
H8 nach Sp. R
H9 nach Sp. S
H10 nach Sp. T
H11 nach Sp. U
H12 nach Sp. V

N3 nach Sp. Y
N4 nach Sp. Z
N5 nach Sp. AA
N6 nach Sp. AB
N7 nach Sp. AC
N8 nach Sp. AD
N9 nach Sp. AE
N10 nach Sp. AF
N11 nach Sp. AG
N12 nach Sp. AH

O3 nach Sp. AK
O4 nach Sp. AL
O5 nach Sp. AM
O6 nach Sp. AN
O7 nach Sp. AO
O8 nach Sp. AP
O9 nach Sp. AQ
O10 nach Sp. AR
O11 nach Sp. AS
O12 nach Sp. AT

B16 nach Sp. AW

H14 nach Sp. AZ

O14 nach Sp. BC

Nochmals vielen herzlichen Dank im Voraus. Das Ganze hat keine Eile.

LG ... Ronny
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: automatisierte Speicherung von Zellinhalten bei Änderung

Beitrag von F3K Total »

Hi,
so, dass war richtig aufwendig, aber: es funzt und ich habe viel gelernt.
Anbei nun die Version, die zu deiner Tabelle passt, mit 43 einzelnen DDE-Verknüpfungen.
Das ist wichtig, es muss zu jeder Zelle eine eigene Verknüpfung existieren, also bitte keine Blöcke kopieren und als DDE-Verknüpfung einfügen, sonst gehts nicht.
Damit die Datei, nachdem du sie einmal geschlossen hast, nicht wieder bei 0 anfängt, schreibe ich den Zeilenindex der Zeile in die der nächste Wert geschrieben werden muss, in der Kopfzeile auf Tabelle2.
Willst du neu beginnen, zurücksetzen drücken.

Viel Erfolg, beim "Überwachen"

Gruß R
Dateianhänge
DDE_target_upload43.ods
(11.72 KiB) 74-mal heruntergeladen
Andromeda_104
**
Beiträge: 26
Registriert: Di, 12.03.2013 12:46

Danke

Beitrag von Andromeda_104 »

Nochmals vielen herzlichen Dank. Ich werde morgen alles zusammenbringen und die DDE-Verknüpfungen jede einzeln für sich nacheinander in der gelisteten Reihenfolge hinterlegen. Die Tatsache des Neubeginns/Überschreibens nach jedem Öffnen der Datei ist nicht weiter schlimm, da die Daten nicht primär als Historie dienen sollen. Aber mit dem Zurücksetzen ist es natürlich die bessere Lösung.

Sollte wider Erwarten noch eine Frage auftauchen, melde ich mich.

Ronny
Antworten