Zellüberwachung und ändern einer anderen Zelle

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

Moderator: Moderatoren

dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

Hallo zusammen,
da ich hier neu im Forum bin hoffe ich keinen Fehler zu machen. Sollte dies der Fall sein, dann unterstützt mich bitte. Danke.

Ich habe folgendes Problem:
Ich möchte die Veränderung einer Zelle überwachen und bei Änderung (Einfügung durch Eingabe oder Kopierung) einer anderen Zelle einen Wert zuweisen.
Für Excel habe ich hierzu folgendes Makro geschrieben:

Code: Alles auswählen

  Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a1")) Is Nothing Then meinmakro
  End Sub

  Sub meinmakro()
   Dim zeichen As String
   Dim leer As String
   leer = ""
   zeichen = "2.seite"
   If Range("a1") = "" Then
      Range("a10") = leer
   Else
     Range("A10") = zeichen
   End If
  End Sub
Kann mir jemand helfen wie ich das in OO übersetzen kann?
Vielen Dank im Voraus
dusdet


Moderation,4: CODE tags gesetzt
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von komma4 »

Willkommen im Forum.

Dafür braucht es kein Makro, die Formel
=WENN(A1="";"";"2. Seite") in A10 genügt.

Wenn Du Dich in StarBasic einarbeiten willst:

StarBasic FAQ

Andrews Makro-Dokument

und ein Objekt-Inspektions-Tool, wie
MRI
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

Hallo Komma4,
Danke für Deine Antwort.
Mir ist die Möglichkeit der Formel die Du mir vorschlägst bekannt.
Ich brauche aber eine Möglichkeit per Makro in Abhängigkeit der Veränderung einer Zelle
eine andere Zelle zu verändern.
Vielleicht hat jemand eine Idee wie ich das Excel Makro in OO umschreiben kann.
Gruß detdus
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von komma4 »

OK, das ist nicht so einfach wie bei MS, dafür braucht es einen Listener...

Dein Suchbegriff ist com.sun.star.chart.XChartDataChangeEventListener

Im englischen AOO Community Forum findest Du Beispiele.


Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

Hallo Komma4,
vielen Dank für Deine Wünsche.

Gibt es vielleicht hier im deutschen Forum jemanden der mir helfen kann das VBA Makro für OO zu übersetzen?
Hier noch mal meine kleine Codestrecke:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then meinmakro
End Sub

Sub meinmakro()
Dim zeichen As String
Dim leer As String
leer = ""
zeichen = "2.seite"
If Range("a1") = "" Then
Range("a10") = leer
Else
Range("A10") = zeichen
End If
End Sub

Viele Dank und Gruß
dusdet
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von clag »

Hallo dusdet,

man kann Tabellblatt-Ereignisse mit Makros verknüpfen zB "Inhalt geändet" ,
wie man das konkret umsetzt hängt etwas von der Aufgabenstellung ab.

Was soll überwacht werden
ein geändertes Formelergebnis
der Zugriff generel zur überwachten Zelle (man kann den gleichen Inhalt erneut eingeben oder rein kopieren)
ein tatsächlich abweichender Eintrag

was soll in der anderen Zell passieren
beliebige Zugriffe auf die überwachte Zelle zählen
vorher nachher Inhalt verarbeiten
????
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von Karolus »

dein Problem lässt sich trotzdem, wie von Komma4 bereits vorgeschlagen, mit der Formel in A10 erschlagen:

Code: Alles auswählen

=WENN(A1="";"";"2. Seite")
Dein VBA-code tut nach meinem Verständniss exakt das gleiche wie die Formel
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von clag »

Hallo dusdet,

habe dir mal eine Beispieldatei erstellt, wie man die direkter Eingabe in einer Zelle überwachen kann.
Zelle_ueberwachen.ods
(10.45 KiB) 484-mal heruntergeladen
hilft dir das ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

Hallo zusammen,
ich glaube ich muss mein Problem doch genauer erläutern damit Ihr versteht, dass ich keine Formel nutzen kann.
Ich habe eine OO Tabelle, die per Text Inhalte einfügen befüllt wrd und dann ausgedruckt werden soll.
Die Anzahl Zeilen ist immer unterschiedlich lang. Mal passen die Zeilen auf eine Seite und mal auf zwei Seiten.
Die Zeilen sind auf der ersten Seite per Format umrandet. Auf der zweiten Seite habe ich in allen Zellen eine
"Bedingte Formatierung" mit Formel, das in Abhängigkeit der ersten Zelle auf der zweiten Seite auch alle Zelle
der zweiten Seite gefüllt werden.
Jetzt kommt das Problem. Ich möchte alle Zeilen auf der zweiten Seite drucken auch wenn Sie nicht gefüllt sind, sondern auch
wenn nur eine oder mehrere Zeilen befüllt sind.
Deshalb möchte ich die erste Zelle der zweiten Seite überwachen und in Abhängigkeit ob sie leer oder befüllt ist die letzte Zelle der zweiten Seite mit einem Text beschreiben, den ich dann in der Farbe weiß einfärbe.

So soll die zweite Seite vollständig (mit Rahmen) nur gedruckt werden wenn Text auf der Seite steht.
Alle meine Bemühungen dies über Druckoptionen zu regeln sind fehlgeschlagen. Auch kann man in der letzten Zelle der zweiten Seite keine Formel rein machen, dann wird sie immer gedruckt.

Ich hoffe ich habe mich so ausgedrückt, dass es verständlich ist.
Mit dem Makro in VBA funktionert das wunderbar. Deshalb dachte ich mir, es kann mir jemand helfen es im OO Makro umzuwandeln.
Vielen Dank und Gruß
dusdet
dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

P.S. Hallo clag,
dies ist doch auch eine Excel Tabelle oder? Ich habe hierin keine Veränderung erzeugen könne.
Gruß
dusdet
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von clag »

Hallo dusdet,

wenn ich dich richtig verstehe kannst du dein Problem durch festlegen eines Druchbereich lösen.
Druckbereich.ods
(17.46 KiB) 167-mal heruntergeladen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von clag »

Hallo dusdet
dusdet hat geschrieben:dies ist doch auch eine Excel Tabelle oder? Ich habe hierin keine Veränderung erzeugen könne.
nein, das Beispiel ist ganz bestimmt keine excel Datei steht doch eigentlich deutlich dran Zelle_ueberwachen.ods
Die ausführung von Makros mußt du aber schon erlauben sonst kann das eingebaute Makro nicht tun was es soll.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

Hallo clag,
sorry, dass ich mich erst jetzt melde. Aber ich war kurzfristig ein paar Tage nicht im Lande.

Ich habe Deine Tabelle mit dem Makro jetzt noch mal getestet und auch die Sicherheit richtig eingestellt und schon funktioniert es.
Hierfür veilen dank. Ich habe Dein Makro auch verstanden wie es funktioniert.
Wenn ich es in Deiner Tabelle modifiziere geht es auch.
Wenn ich es dann in meine Tabelle einbaue und es entsprechend ändere funktioniert es aber nicht.
Muss man in der Tabelle noch irgend etwas tun um das Makro zu aktivieren oder es der Tabelle zuzuordnen?
Für einen kurzen Tipp wäre ich dankbar.

Gruß
dusdet
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von clag »

Hallo dusdet,
dusdet hat geschrieben:Muss man in der Tabelle noch irgend etwas tun um das Makro zu aktivieren oder es der Tabelle zuzuordnen?
ja, vermutlich hast du in deiner Tabelle das Makro noch nicht mit dem Tabellenereignis Inhalt geändert verknüpft,
dazu ein Rechtsklick mit der Maus im Tabellenblattregister auf den Reiter mit dem Tabellenblattnamen und im aufkommenden
Kontextmenü > Tabellenereignisse.. -Inhalt geändert > Zuweisen: [Makro] .... das gewünscht Makro zuordnen.

Hast du dir mal einen Druchbereich eingerichtet?
Damit kann man dein Anliegen doch eigentlich viel einfacher erzielen!
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
dusdet
Beiträge: 7
Registriert: Mi, 15.07.2015 17:13

Re: Zellüberwachung und ändern einer anderen Zelle

Beitrag von dusdet »

Hallo clag,

herzlichen Dank für die Info. Diese Info brauchte ich noch. jetzt läuft das Makro.

Mit dem Druckbereich weiß ich nicht genau wie Du das meinst?
Ich möchte ja abhängig von der Veränderung einer Zelle (Zelle = Inhalt = 2-Seiten; Zelle = keinen Inhalt = 1-Seite) diese Seite/n dann komplett drucken.
Ich weiß nicht ob der Druckbereich so variabel ist. Bestimmt geht das auch per Makro und der Abfrage auf den Zellinhalt.
Aber ohne??

Gruß
dusdet
Antworten