CALC: Zellbereich löschen, speichern
Moderator: Moderatoren
CALC: Zellbereich löschen, speichern
Hallo
Kann mir vielleicht jemand helfen, bin im Makro schreiben noch nicht so fit.
Ich habe eine Tabelle mit Namen Maschine erstellt. In diese trage ich meine Werte von Montag bis Freitag ein.
Mein Makro was ich bis jetzt geschrieben habe speichert die Tabelle mit einem Namen in einer bestimmte Datei.
Das geht.
Ich möchte aber noch das er die Talelle Maschine wieder auf ruft und den Inhalt aus vor gegebenen bereichen löscht und sie dann schliest.
Somit ist die Tabelle dann am Montag sofort leer.
Ich hoffe es kann mir jemand bei dem Makro helfen.
Dank schon mal im vorraus
Speednetz
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst; doppelte Anfrage im (wieerum) falschen Unterforum gelöscht
Kann mir vielleicht jemand helfen, bin im Makro schreiben noch nicht so fit.
Ich habe eine Tabelle mit Namen Maschine erstellt. In diese trage ich meine Werte von Montag bis Freitag ein.
Mein Makro was ich bis jetzt geschrieben habe speichert die Tabelle mit einem Namen in einer bestimmte Datei.
Das geht.
Ich möchte aber noch das er die Talelle Maschine wieder auf ruft und den Inhalt aus vor gegebenen bereichen löscht und sie dann schliest.
Somit ist die Tabelle dann am Montag sofort leer.
Ich hoffe es kann mir jemand bei dem Makro helfen.
Dank schon mal im vorraus
Speednetz
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst; doppelte Anfrage im (wieerum) falschen Unterforum gelöscht
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: CALC: Zellbereich löschen, speichern
Willkommen im Forum.
Wie @nikki Dir schon sagte: dies hier ist der Bereich für alle Fragen zur Programmierung in/von OpenOffice...
Ebenfalls möchte ich die Empfehlung von @nikki unterstützen: für den beschriebenen Arbeitsablauf bietet es sich an mit einer Dokumentvorlage zu arbeiten: richte die Vorlage so ein (Formatierungen!(, wie Du sie brauchst, erstelle dann Montags eine neue Datei, fülle sie mit Daten und speichere sie.
Ein Beispiel findest Du bei Dannenhöfer
Wie @nikki Dir schon sagte: dies hier ist der Bereich für alle Fragen zur Programmierung in/von OpenOffice...
Ebenfalls möchte ich die Empfehlung von @nikki unterstützen: für den beschriebenen Arbeitsablauf bietet es sich an mit einer Dokumentvorlage zu arbeiten: richte die Vorlage so ein (Formatierungen!(, wie Du sie brauchst, erstelle dann Montags eine neue Datei, fülle sie mit Daten und speichere sie.
Ein Beispiel findest Du bei Dannenhöfer
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)
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)
Re: CALC: Zellbereich löschen, speichern
zunächst:
auch ich denke das nikki und komma4 mit der Dokumentvorlage recht haben
was Dir ja kaum sehr viel weiterhelfen dürfte.
Gruß
Stephan
auch ich denke das nikki und komma4 mit der Dokumentvorlage recht haben
nun ja, dazu fehlen genauere Infos. Da Du das Speichern eines Tabellendokuments per Makro ja schon selbst hinbekommen hast, geht es ja eigentlich nur um das Löschen von Zellbereichen und das ist in allgemeiner Darstellung nur eine Zeile Code, z.B.:Ich hoffe es kann mir jemand bei dem Makro helfen.
Code: Alles auswählen
<ZellbereichsObjekt>.FormulaLocal = ""
Gruß
Stephan
Re: CALC: Zellbereich löschen, speichern
Einspruch! Das ist nicht das korrekte Vorgehen zum Löschen von Zellinhaltendas Löschen von Zellbereichen und das ist in allgemeiner Darstellung nur eine Zeile Code, z.B.:
Code: Alles auswählen
<ZellbereichsObjekt>.FormulaLocal = ""

Code: Alles auswählen
<ZellbereichsObjekt>.clearContents(flags)
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: CALC: Zellbereich löschen, speichern
Danke für eure Info
Das mit derDokumentvorlage ist nicht schlecht.
Aber ich muß bevor ich sie in den Ablageordner speichere ja jeden Tag meine Einträge machen.
ich möchte Tabelle aber nicht jedes mal aus dem Ablgeorner wieder auf rufen.
Vieleicht kann mir ja dabei jemand helfen.
Meine beiden Tabellen sehn im moment so aus.
Gruß Speednetz
Das mit derDokumentvorlage ist nicht schlecht.
Aber ich muß bevor ich sie in den Ablageordner speichere ja jeden Tag meine Einträge machen.
ich möchte Tabelle aber nicht jedes mal aus dem Ablgeorner wieder auf rufen.
Vieleicht kann mir ja dabei jemand helfen.
Meine beiden Tabellen sehn im moment so aus.
Gruß Speednetz
- Dateianhänge
-
- neue Maschine.ods
- (31.66 KiB) 189-mal heruntergeladen
-
- alte Maschine.ods
- (31.06 KiB) 153-mal heruntergeladen
Re: CALC: Zellbereich löschen, speichern
berechtigter Einspruch, ich hatte sogar daran gedacht, nur ich hatte nicht die Konstanten (flags) im Kopf und war zu faul die rauszusuchen.Einspruch! Das ist nicht das korrekte Vorgehen zum Löschen von Zellinhalten
Gruß
Stephan
Re: CALC: Zellbereich löschen, speichern
In der Beispieldatei ist doch bereits eine Löschroutine die eigentlich funktioniert.
Meinethalben mach es so:
Gruß
Stephan
Meinethalben mach es so:
Code: Alles auswählen
dim oSheet as Object
Dim sPasswort as String
'die Aktive Tabelle
oSheet= ThisComponent.CurrentController.ActiveSheet
'oSheet= ThisComponent.Sheets.GetByName("Tabelle1") 'oder dit Tabelle mir Namme: "Tabelle1"
'oSheet= ThisComponent.Sheets.GetByIndex(0) 'Oder Die erste Tabelle
sPasswort="111"
'Schutz aufheben
oSheet.unprotect(sPasswort)
MsgBox "Schutz ist jetzt aufgehoben."
oSheet.getCellRangeByName("D5:H57").clearContents(7)
'Tabelle Schützen
oSheet.protect(sPasswort)
'Rückgängigmachen Verlauf Löschen,
'damit man den Schutz nicht per Rückgängigmachen aufheben kann.
ThisComponent.IsUndoEnabled =False 'Rückgängigmachen ausschalten
ThisComponent.IsUndoEnabled =true 'Rückgängigmachen einschalten
MsgBox "Tabelle wurde geschützt"
Gruß
Stephan
Re: CALC: Zellbereich löschen, speichern
Hallo Stephan
Das ist richtig
Ich möchte aber das die Löschroutine für dieTabelle neue Maschine gleich mit in dem Makro von dem Wochenspeicher enthalten ist.
Und danach soll die Tabelle geschlossen werden.
Wäre schön wenn du mir dabei helfen könntest.
Danke im Vorraus
Speednetz
Das ist richtig
Ich möchte aber das die Löschroutine für dieTabelle neue Maschine gleich mit in dem Makro von dem Wochenspeicher enthalten ist.
Und danach soll die Tabelle geschlossen werden.
Wäre schön wenn du mir dabei helfen könntest.
Danke im Vorraus
Speednetz
Re: CALC: Zellbereich löschen, speichern
Ich möchte aber das die Löschroutine für dieTabelle neue Maschine gleich mit in dem Makro von dem Wochenspeicher enthalten ist.
Und danach soll die Tabelle geschlossen werden.
Vielleicht bist Du Dir nur dr Möglichkeiten nicht bewusst, das man ein Makro innerhalb eines anderen Makros aufrufen kann?
Also z.B.:
Code: Alles auswählen
sub save
oDoc=thisComponent
Sheet = oDoc.Sheets(0)
Cell1 = Sheet.getCellByPosition(5, 00) '<= Das ist der erste Teil Bezug
Cell2 = Sheet.getCellByPosition(1, 00) '<= Das ist der zweite Teil Bezug
Cell3 = Sheet.getCellByPosition(2, 00) '<= Das ist der erste Teil Bezug
Cell4 = Sheet.getCellByPosition(8, 00) '<= Das ist der erste Teil Bezug
Filename = Cell1.String & " " & Cell2.String & " " & Cell3.String & " - " & Cell4.String & ""
Path = "file:///c:/Statistik/Wochenspeicher/"
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
oDoc.storeasurl(Path & Filename & ".old",args1())
'das zweite Makro aufrufen:
loeschen()
With ThisComponent
.store
.close( FALSE )
End With
end sub
Sub loeschen()
dim oSheet as Object
Dim sPasswort as String
'die Aktive Tabelle
oSheet= ThisComponent.CurrentController.ActiveSheet
'oSheet= ThisComponent.Sheets.GetByName("Tabelle1") 'oder dit Tabelle mir Namme: "Tabelle1"
'oSheet= ThisComponent.Sheets.GetByIndex(0) 'Oder Die erste Tabelle
sPasswort="111"
'Schutz aufheben
oSheet.unprotect(sPasswort)
MsgBox "Schutz ist jetzt aufgehoben."
oSheet.getCellRangeByName("D5:H57").clearContents(7)
'Tabelle Schützen
oSheet.protect(sPasswort)
'Rückgängigmachen Verlauf Löschen,
'damit man den Schutz nicht per Rückgängigmachen aufheben kann.
ThisComponent.IsUndoEnabled =False 'Rückgängigmachen ausschalten
ThisComponent.IsUndoEnabled =true 'Rückgängigmachen einschalten
MsgBox "Tabelle wurde geschützt"
End Sub
Stephan