Hallo,
ich suche nach einer Möglichkeit unter OOo eine Zeile automatisch einzufügen z.B. via Makro.
Beispiel:
Erfolgt eine Eingabe in der Zelle B14, soll automatisch die Formatierung und Formeln der Zeile 14 in Zeile 15 kopiert werden, erfolgt danach eine Eingabe in Zelle B15, soll automatisch die Formatierung und Formeln der Zeile 15 in Zeile 16 kopiert werden u.s.w.
Ich hoffe es ist einigermaßen verständlich.
Gruß Maik
Automatisch neue Zeile einfügen
Moderator: Moderatoren
Re: Automatisch neue Zeile einfügen
Hallo!
Die letzte benützte Zeile in die folgende Zeile zu kopieren ist für ein Makro kein Problem.
Das Problem ist nur, dass du es automatisch starten willst. Dazu muss das Makro mit einem Ereignis verbunden werden. Da es in Calc auf Zellenebene kein vordefiniertes Ereignis gibt, muss dazu ein Listener programmiert werden, der mit Öffnen des Dokuments gestartet wird. Da dieser Listener, während des ganzen Arbeitens aktiv ist, muss im Makro genau definiert sein , wann es etwas machen soll und wann nicht, weil es sonst zu unliebsamen Überraschungen kommen kann.
Ich habe mal ein Beispiel programmiert. Hier wird die letzte Zeile (im Moment beschränkt auf Spalte A und B) in die nächste Zeile kopiert, wenn in dieser Zeile die Zelle in Spalte B aktiviert wird, z.B. wenn der Eintrag in der darüberliegenden Zelle mit Enter abgeschlossen wird. Das musst du deinen Wünschen anpassen.
Gruß
Charly
Die letzte benützte Zeile in die folgende Zeile zu kopieren ist für ein Makro kein Problem.
Das Problem ist nur, dass du es automatisch starten willst. Dazu muss das Makro mit einem Ereignis verbunden werden. Da es in Calc auf Zellenebene kein vordefiniertes Ereignis gibt, muss dazu ein Listener programmiert werden, der mit Öffnen des Dokuments gestartet wird. Da dieser Listener, während des ganzen Arbeitens aktiv ist, muss im Makro genau definiert sein , wann es etwas machen soll und wann nicht, weil es sonst zu unliebsamen Überraschungen kommen kann.
Ich habe mal ein Beispiel programmiert. Hier wird die letzte Zeile (im Moment beschränkt auf Spalte A und B) in die nächste Zeile kopiert, wenn in dieser Zeile die Zelle in Spalte B aktiviert wird, z.B. wenn der Eintrag in der darüberliegenden Zelle mit Enter abgeschlossen wird. Das musst du deinen Wünschen anpassen.
Gruß
Charly
- Dateianhänge
-
- Listener_Beispiel_Neue_Zeile.ods
- (8.53 KiB) 470-mal heruntergeladen
Re: Automatisch neue Zeile einfügen
Danke für deine Mühe.
Aber geht das nicht einfacher. Ich als Laie finde noch nicht einmal die Variable für die aktive Zelle auf das dein Makro reagiert. Im Übrigen soll nur die Formatierung in die nächste Zeile kopiert werden.
Diese Funktion ist für mein "Kassenbuch" interessant, damit es sich nach Bedarf automatisch erweitert. Siehe Beispiel.
Wenn ich mit Google nach solchen Funktionen suche, finde ich viel über Excel Makros und dort sieht das auf den ersten Blick nicht so kompliziert aus.
Kannst du mir das noch etwas besser erklären oder gibt es Alternativen?
Gruß Maik
Aber geht das nicht einfacher. Ich als Laie finde noch nicht einmal die Variable für die aktive Zelle auf das dein Makro reagiert. Im Übrigen soll nur die Formatierung in die nächste Zeile kopiert werden.
Diese Funktion ist für mein "Kassenbuch" interessant, damit es sich nach Bedarf automatisch erweitert. Siehe Beispiel.
Wenn ich mit Google nach solchen Funktionen suche, finde ich viel über Excel Makros und dort sieht das auf den ersten Blick nicht so kompliziert aus.
Kannst du mir das noch etwas besser erklären oder gibt es Alternativen?
Gruß Maik
- Dateianhänge
-
- Beispiel.ods
- Beispiel
- (14.05 KiB) 244-mal heruntergeladen
Re: Automatisch neue Zeile einfügen
Hallo!
Ein Listener ist kompliziert. Ich habe in deine Datei ein Makro mit Schaltfläche eingefügt. Bei Drücken der Schaltfläche wird die letzte Zeile kopiert und in die folgende Zeile die Formate und Formeln ohne Werte kopiert. Die Kopierfunktion und Inhalte einfügen habe ich durch den Makrrekorder erzeugt und mit normalen Code ergänzt.
Vielleicht genügt das.
Gruß
Charly
Ein Listener ist kompliziert. Ich habe in deine Datei ein Makro mit Schaltfläche eingefügt. Bei Drücken der Schaltfläche wird die letzte Zeile kopiert und in die folgende Zeile die Formate und Formeln ohne Werte kopiert. Die Kopierfunktion und Inhalte einfügen habe ich durch den Makrrekorder erzeugt und mit normalen Code ergänzt.
Vielleicht genügt das.
Gruß
Charly
- Dateianhänge
-
- Beispiel.ods
- (16.88 KiB) 566-mal heruntergeladen
Re: Automatisch neue Zeile einfügen
Hallo,
danke für deine große Hilfe. Ich muss leider feststellen das ich den Code noch nicht einmal ansatzweise verstehe. Aber die Funktion von deinem letzten Makro ist sehr gut.
Ich hätte aber noch ein paar Verbesserungsideen die ich mit meinem Kenntnisstand noch nicht umsetzten kann:
- Kann man die Formatierung und die Formel in dem Makro fest vorgeben oder immer nur von z.B. Zeile 13 kopieren?
- Wenn man nun noch den Listener noch hinzu programmiert welche unliebsamen Überraschungen können dann noch auftreten (siehe 1. Beitrag von dir)?
- In deinem Dokument sind zwei Makros, werden beide benötigt?
Gruß Maik
danke für deine große Hilfe. Ich muss leider feststellen das ich den Code noch nicht einmal ansatzweise verstehe. Aber die Funktion von deinem letzten Makro ist sehr gut.
Ich hätte aber noch ein paar Verbesserungsideen die ich mit meinem Kenntnisstand noch nicht umsetzten kann:
- Kann man die Formatierung und die Formel in dem Makro fest vorgeben oder immer nur von z.B. Zeile 13 kopieren?
- Wenn man nun noch den Listener noch hinzu programmiert welche unliebsamen Überraschungen können dann noch auftreten (siehe 1. Beitrag von dir)?
- In deinem Dokument sind zwei Makros, werden beide benötigt?
Gruß Maik
Re: Automatisch neue Zeile einfügen
Hallo!
Gruß
Charly
Du kannst das natürlich im Makro auch fest hinterlegen. Aber es ist einfacher wenn du eine vorhandene Formatierung kopierst. Das heißt, in dem verwendeten Dokument, muss zumindestens die erste Datenzeile entsprechend formatiert sein.Kann man die Formatierung und die Formel in dem Makro fest vorgeben oder immer nur von z.B. Zeile 13 kopieren?
Ich persönlich ziehe die Button-Lösung vor. Z.B. hatte ich mit der Maus und Markieren von Zellen Probleme.Wenn man nun noch den Listener noch hinzu programmiert welche unliebsamen Überraschungen können dann noch auftreten
Es wird nur ein Makro benötigt. Das Makro "Kopieren", war nur das aufgezeichnete Programm, das ich in das Makro "formate_uebertragen" eingebaut habe. Ich habe es vergessen, vor dem Abschicken zu löschen.- In deinem Dokument sind zwei Makros, werden beide benötigt?
Gruß
Charly
Re: Automatisch neue Zeile einfügen
Ok. Danke.
Ich werde versuchen das Makro nach deinen Empfehlungen zu ändern.
- Formatierung immer von der zweiten Zeile kopieren
- Schaltflächenlösung beibehalten
- Makro "Kopieren löschen"
Gruß Maik
Ich werde versuchen das Makro nach deinen Empfehlungen zu ändern.
- Formatierung immer von der zweiten Zeile kopieren
- Schaltflächenlösung beibehalten
- Makro "Kopieren löschen"
Gruß Maik