[gelöst] Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

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: [gelöst] Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von junmod » Di, 07.06.2016 10:33

Hallo Stephan,

dein Beispiel 2 ohne Prüfung macht genau das was ich mir vorgestellt habe. Super!
Dann lag es wohl nur an der Prüfung.

Vielen Dank!

Gruß
Dirk

Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von Stephan » Di, 07.06.2016 08:23

Hättest du da vielleicht auch noch einen Tipp?
Nach Deiner jetzt übermittelten Beispieldatei am Einfachsten indem Du zusätzlich auf ein EReignis in ZElle H2 prüfst:

Code: Alles auswählen

Sub Main(a)
blatt = ThisComponent.CurrentConTroller.ActiveSheet
tmp = Split(a.AbsoluteName,".")
If (tmp(1) = "$A$1" OR tmp(1) = "$A$2" OR tmp(1) = "$H$2") AND blatt.getCellRangeByName("A2").Value = 1 Then
      blatt.getCellRangeByName("A3").String = blatt.getCellRangeByName("A1").String
   ElseIf (tmp(1) = "$A$1" OR tmp(1) = "$A$2" OR tmp(1) = "$H$2") AND blatt.getCellRangeByName("A2").Value = 0 Then
      blatt.getCellRangeByName("A3").String = ""
End if
End Sub
strenggenommen ist die Prüfung überflüssig und es sollte genügen:

Code: Alles auswählen

Sub Main()
blatt = ThisComponent.CurrentConTroller.ActiveSheet
If blatt.getCellRangeByName("A2").Value = 1 Then
      blatt.getCellRangeByName("A3").String = blatt.getCellRangeByName("A1").String
   ElseIf blatt.getCellRangeByName("A2").Value = 0 Then
      blatt.getCellRangeByName("A3").String = ""
End if
End Sub


Gruß
Stephan

Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von junmod » Di, 07.06.2016 07:30

Hallo mikeleb,

hier ist mein Versuch.

Gruß
Dirk
Dateianhänge
Unbenannt 3.ods
(11.12 KiB) 131-mal heruntergeladen

Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von mikeleb » Mo, 06.06.2016 20:07

Hallo,

ich kann deine Beobachtung nicht bestätigen. Auch wenn ich die Zelle A2 per Formel mit 1 oder 0 fülle, arbeitet das Makro exakt.
Kann es sein, dass du anstelle der Zahlen 0 und 1 die Texte "0" und "1" in der Formel verarbeitest?
Poste mal deine konkrete Verweis()-Funktion.

Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von junmod » Mo, 06.06.2016 13:14

Danke Stephan!

Es funktioniert soweit ganz gut, allerdings nur wenn ich die "1" oder "0" direkt eingebe, sobald ich diese aber durch einen VERWEIS erzeuge, passiert nichts mehr. Ich habe schon gedacht es liegt an der Formatierung der Zelle, aber selbst wenn ich mit Buchstaben arbeite funktioniert es nicht.

Hättest du da vielleicht auch noch einen Tipp?

Gruß
Dirk

Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von Stephan » Sa, 04.06.2016 07:21

ordne z.B. folgendes Makro:

Code: Alles auswählen

Sub Main(a)
blatt = ThisComponent.CurrentConTroller.ActiveSheet
tmp = Split(a.AbsoluteName,".")
If (tmp(1) = "$A$1" OR tmp(1) = "$A$2") AND blatt.getCellRangeByName("A2").Value = 1 Then
		blatt.getCellRangeByName("A3").String = blatt.getCellRangeByName("A1").String
	ElseIf (tmp(1) = "$A$1" OR tmp(1) = "$A$2") AND blatt.getCellRangeByName("A2").Value = 0 Then
		blatt.getCellRangeByName("A3").String = ""
End if
End Sub
dem Ereignis "Inhalt geändert" des Tabellenblattes zu (Rechtsklick auf Reiter des Tabellenblattes und Menüpunkt "Ereignisse...)


Gruß
Stephan
Dateianhänge
Beispiel_A1_A2_A3.ods
(9.29 KiB) 151-mal heruntergeladen

[gelöst] Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?

von junmod » Fr, 03.06.2016 14:20

Hallo Forum,

ich habe mir bereits die Finger wund gesucht und einiges ausprobiert, aber ich komme nicht weiter.
Ich hoffe Ihr könnt mir den entscheidenden Tipp geben.

Folgendes würde ich gerne in OO Calc mit einem Makro realisieren:

Ich habe z.B. die Zelle A1, die über die Funktion VERWEIS mit Text befüllt wird,
dann gibt es eine weitere Zelle, z.B. A2, die abhängig vom Text in Zelle A1 eine 1 oder 0 enthält,
wenn jetzt in Zelle A2 z.B die 1 erscheint soll automatisch ein Makro den Text aus A1 in eine andere Zelle, z.B. A3 schreiben, bei 0 soll die Zelle A3 leer und beschreibbar bleiben.

Ich hatte schonmal diverse Versuche gestartet, aber entweder war es nicht in Echtzeit, d.h. der Text wurde erst eine Eingabe später in A3 geschrieben oder es kam die Fehlermeldung dass die Zelle angeblich geschützt sei.

Ich würde mich freuen wenn mir jemand helfen könnte.

Gruß
Dirk

Nach oben