[gelöst] Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?
Moderator: Moderatoren
[gelöst] Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?
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
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
Zuletzt geändert von junmod am Di, 07.06.2016 10:34, insgesamt 1-mal geändert.
Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?
ordne z.B. folgendes Makro:
dem Ereignis "Inhalt geändert" des Tabellenblattes zu (Rechtsklick auf Reiter des Tabellenblattes und Menüpunkt "Ereignisse...)
Gruß
Stephan
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
Gruß
Stephan
- Dateianhänge
-
- Beispiel_A1_A2_A3.ods
- (9.29 KiB) 152-mal heruntergeladen
Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?
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
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?
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.
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.
Gruß,
mikeleb
mikeleb
Re: Wie kann man Zellinhalte in Echtzeit kopieren und schreiben?
Hallo mikeleb,
hier ist mein Versuch.
Gruß
Dirk
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?
Nach Deiner jetzt übermittelten Beispieldatei am Einfachsten indem Du zusätzlich auf ein EReignis in ZElle H2 prüfst:Hättest du da vielleicht auch noch einen Tipp?
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
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?
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
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