Daten in eine andere Tabelle schreiben (andere Datei)
Moderator: Moderatoren
Daten in eine andere Tabelle schreiben (andere Datei)
Libreoffice 7.0.1.2 (x64)
Betriebssystem Windows 10
Hallo in die Runde,
vielleicht kann mir jemand helfen oder einen Hinweis geben wo ich ein Beispiel suche. Experimentiere jetzt schon stundenlang und komme zu keiner Lösung! Libre Makros sind mir ein großes Rätsel .
Folgendes Problem:
Ich möchte mit einem Makro in der Datei Rechnung.ods (Tabelle "Rechnung") den String aus der Zelle A1 in eine andere ods Datei (Verlauf.ods) speichern.
Hintergrund: In A1 von Rechnung.ods steht der Name der aktellen Rechnungsdatei mit Nummer Datum usw und ich möchte in Verlauf.ods den Verlauf die History meiner Rechnungen archivieren
Also das Makro müsste in Verlauf.ods noch in Spalte A nach unten den ersten freien Platz finden und dort den String aus Rechnung.ods Tabellenblatt "Rechnung" Zelle A1 ablegen.
Vielen Dank für jegliche Hilfe
Luis
Betriebssystem Windows 10
Hallo in die Runde,
vielleicht kann mir jemand helfen oder einen Hinweis geben wo ich ein Beispiel suche. Experimentiere jetzt schon stundenlang und komme zu keiner Lösung! Libre Makros sind mir ein großes Rätsel .
Folgendes Problem:
Ich möchte mit einem Makro in der Datei Rechnung.ods (Tabelle "Rechnung") den String aus der Zelle A1 in eine andere ods Datei (Verlauf.ods) speichern.
Hintergrund: In A1 von Rechnung.ods steht der Name der aktellen Rechnungsdatei mit Nummer Datum usw und ich möchte in Verlauf.ods den Verlauf die History meiner Rechnungen archivieren
Also das Makro müsste in Verlauf.ods noch in Spalte A nach unten den ersten freien Platz finden und dort den String aus Rechnung.ods Tabellenblatt "Rechnung" Zelle A1 ablegen.
Vielen Dank für jegliche Hilfe
Luis
Re: Daten in eine andere Tabelle schreiben (andere Datei)
Moin,
wenn die beiden Dateien sich im gleichen Ordner befinden, sollte folgendes Makro funktionieren, Beispieldateien anbei.
Sollte die Datei "Verlauf.ods" nicht geöffnet sein, wird sie im Hintergrund geöffnet, beschrieben, gespeichert und wieder geschlossen.
Ist sie geöffnet, wird die Zeile zugefügt.
Gruß R
wenn die beiden Dateien sich im gleichen Ordner befinden, sollte folgendes Makro funktionieren, Beispieldateien anbei.
Sollte die Datei "Verlauf.ods" nicht geöffnet sein, wird sie im Hintergrund geöffnet, beschrieben, gespeichert und wieder geschlossen.
Ist sie geöffnet, wird die Zeile zugefügt.
Code: Alles auswählen
Sub Copy_A1_to_Verlauf
oDocument = ThisComponent
oSheet = oDocument.Sheets.getbyName("Rechnung")
oCell = oSheet.getcellbyposition(0,0)
sFile = oCell.String
bopen = false
oComponentsEnumeration = StarDeskTop.Components.createEnumeration
while oComponentsEnumeration.hasmoreelements
odoc = oComponentsEnumeration.nextElement
if odoc.Title = "Verlauf.ods" then
oDocVerlauf = odoc
bopen = true
endif
wend
if bopen = false then
dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "Hidden"
args(0).Value = false
sFolderUrl = replace(oDocument.Url,oDocument.Title,"")
sUrlVelauf = sFolderUrl & "Verlauf.ods"
oDocVerlauf = StarDeskTop.loadComponentFromUrl(sUrlVelauf,"_blank",0,args())
endif
oTargetSheet = oDocVerlauf.Sheets.getbyname("Tabelle1")
oTargetRow = oTargetSheet.Columns.getbyName("A")
oEmptyCells = oTargetRow.queryemptyCells
nStartrow = oEmptyCells.RangeAddresses(0).StartRow
otargetCell = oTargetRow.getcellbyPosition(0,nStartrow)
otargetCell.String = sFile
oDocVerlauf.Store
if bopen = false then
oDocVerlauf.close -1
endif
End Sub
- Dateianhänge
-
- Verlauf.ods
- (7.88 KiB) 92-mal heruntergeladen
-
- Rechnung.ods
- (11.57 KiB) 90-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Daten in eine andere Tabelle schreiben (andere Datei)
Danke F3K Total
das funktioniert sehr gut, war direkt ein kleines Weihnachtsgeschenk
Ein Problem hätte ich noch ich will vorher (wenn es von der Logik her besser ist ginge es auch anschließend) die Vorlagedatei rechnung.ods (oder ich benutze besser das Format ots) unter NEUEM Namen in einem ANDEREN Ordner abspeichern. Das funktioniert schon mit dem Makro:
Mit der InputBox habe ich noch die Möglichkeit den Dateinamen zu ändern
Jetzt geht´s leider nicht mehr mit deinem Makrovorschlag, weil ja die Ausgangsdatei nicht mehr rechnung.ods heißt und die Verlauf.ods nicht mehr im selben Ordner liegt.
Kann ich die 2 Makros sinnvoll miteinander kombinieren, dass alles in einem Rutsch funktioniert?
Also die Rechnung speichern und die Daten in die Verlauf.ods eintragen
Viele Grüße
Luis
das funktioniert sehr gut, war direkt ein kleines Weihnachtsgeschenk
Ein Problem hätte ich noch ich will vorher (wenn es von der Logik her besser ist ginge es auch anschließend) die Vorlagedatei rechnung.ods (oder ich benutze besser das Format ots) unter NEUEM Namen in einem ANDEREN Ordner abspeichern. Das funktioniert schon mit dem Makro:
Code: Alles auswählen
Sub Rechnung_speichern
blatt = ThisComponent.CurrentController.ActiveSheet
With blatt
tmp = .getCellRangeByName("v12").String
End With
tmp2 = InputBox ("Bitte kontrolliere den Dateinamen: ","Lieber Benutzer", tmp)
ThisComponent.storeAsUrl(ConvertToURL(tmp2), Array())
End Sub
Jetzt geht´s leider nicht mehr mit deinem Makrovorschlag, weil ja die Ausgangsdatei nicht mehr rechnung.ods heißt und die Verlauf.ods nicht mehr im selben Ordner liegt.
Kann ich die 2 Makros sinnvoll miteinander kombinieren, dass alles in einem Rutsch funktioniert?
Also die Rechnung speichern und die Daten in die Verlauf.ods eintragen
Viele Grüße
Luis
Re: Daten in eine andere Tabelle schreiben (andere Datei)
dann verwende halt:Jetzt geht´s leider nicht mehr mit deinem Makrovorschlag, weil ja die Ausgangsdatei nicht mehr rechnung.ods heißt und die Verlauf.ods nicht mehr im selben Ordner liegt.
Code: Alles auswählen
ThisComponent.storeToUrl(ConvertToURL(tmp2), Array())
Code: Alles auswählen
ThisComponent.storeAsUrl(ConvertToURL(tmp2), Array())
z.B. siehe:
http://www.dannenhoefer.de/faqstarbasic ... chern.html
Das wäre hier im Konkreten wohl der eleganteste Weg.
Es gibt aber auch alternative Wege die Du selbst leicht finden könntest, wenn Du Dir die Mühe machen würdest zu verstehen was der Code von "F3K Total" tut.
Gruß
Stephan
Re: Daten in eine andere Tabelle schreiben (andere Datei)
Bitte,
habe noch einen kleinen Fehler entdeckt, damit die Datei Verlauf.ods wie beschrieben ggf. im Hintergrund geöffnet wird, muss im Code statt
natürlich
stehen.
Gruß R
habe noch einen kleinen Fehler entdeckt, damit die Datei Verlauf.ods wie beschrieben ggf. im Hintergrund geöffnet wird, muss im Code statt
Code: Alles auswählen
Hidden = false
Code: Alles auswählen
Hidden = true
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Daten in eine andere Tabelle schreiben (andere Datei)
Herzlichen Dank,
Ihr habt mir sehr geholfen!
Gruß Luis
Ihr habt mir sehr geholfen!
Gruß Luis