Verknüfpungen zu Dateien / fortlaufende Dateinamen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

sammawatt
Beiträge: 4
Registriert: So, 22.03.2009 17:31

Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von sammawatt »

Hallo!

Da ich mich weder mit Access noch mit Base auskenne, muss ich hier eine Kundenkonten-Datenbank mit Calc erstellen.

Naja, "eine" ist relativ... :roll: Ich lege jetzt für jeden Kunden eine getrennte Datei an (insgesamt fast 200 Dateien), in der Buchungen eingetragen werden und das aktuelle Saldo errechnet wird.

In einer weiteren Datei soll dann eine Saldenübersicht angezeigt werden, dazu wird dei Saldoanzeige pro Kunde zu einer bestimmten Zelle in den Dateien verknüpft (in jeder Kundendatei steht das aktuelle Saldo im Feld E3).

Vom Prinzip her funktioniert das, nur müsste ich für jede Kundendatei den Link in der Übersicht händisch erstellen, da das Ziehen des Feldes auf die anderen Reihen nur den Bezug zur Zelle ändert. Aber die soll ja gleich bleiben, statt dessen müsste sich im Link der Dateiname ändern (Dateien sind numemriert, also wäre hier die Nummer in jeder Reihe um 1 zu erhöhen).

Hat jemand einen Idee, wie man das lösen könnte?

Gruß,
Alex
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von turtle47 »

Hallo Alex,

erstmal herzlich Willkommen hier im Forum.
sammawatt hat geschrieben:In einer weiteren Datei soll dann eine Saldenübersicht angezeigt werden, dazu wird dei Saldoanzeige pro Kunde zu einer bestimmten Zelle in den Dateien verknüpft (in jeder Kundendatei steht das aktuelle Saldo im Feld E3)
Zu einer ähnlichen Anfrage habe ich schon einmal eine Makrolösung geschrieben. Vielleicht kannst Du die ja auch verwenden.

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
sammawatt
Beiträge: 4
Registriert: So, 22.03.2009 17:31

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von sammawatt »

Hallo Jürgen,

vielen Dank, das war genau das, was ich gesucht habe. :D

Das ging ja schnell hier mit der Hilfe - hatte eigentlich schon damit gerechnet, dass man mich steinigt weil das mit den 190 einzelnen Dateien so ein Flickwerk ist... :lol:
Aber anders bekomme ich es eben nicht hin. Aber wenn das jetzt so klappt bin ich hoch zufrieden!

Gruß,
Alex
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von komma4 »

sammawatt hat geschrieben:In einer weiteren Datei soll dann eine Saldenübersicht angezeigt werden [...](in jeder Kundendatei steht das aktuelle Saldo im Feld E3).
Auch von mir ein: Willkommen im Forum.


Ohne Makros geht es auch:

Eine statische Verknüpfung zu einer Zelle sieht so aus:
='file:///zentrale/firma/testdata/kunde_0001.ods'#$Tabelle1.$E$3



Du suchst nun eine Verknüpfung deren Dateiname sich aus einem festen und einem variablen Teil zusammen setzt:

fester Teil in A1:
'file:///zentrale/firma/testdata/kunde_

weiterer konstanter Teil in B1:
.ods'#$Tabelle1.$E$3

und der mittlere Teil, als fortlaufende Nummer formatiert (hier: 4-stellige), wird dynamisch ermittelt; ab Zeile 2:
TEXT( ZEILE()-1; "0000")

Die komplette Verknüpfung zusammensetzen mit VERKETTEN
VERKETTEN( $A$1; TEXT( ( ZEILE()-1 ) ; "0000") ; $B$1 )


und diesen verketteten Text als Zellbezug (hier: Datei-Zellbezug!) auswerten durch INDIREKT. In die Zelle A2 reinschreiben

Code: Alles auswählen

=INDIREKT(VERKETTEN($A$1;TEXT((ZEILE()-1);"0000");$B$1))
und runterziehen.


siehe auch: FlexibleZelladressen#Datei


Hilft das auch?
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)
sammawatt
Beiträge: 4
Registriert: So, 22.03.2009 17:31

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von sammawatt »

Hallo Winfried,

das werde ich auch mal testen. Momentan bearbeite ich noch die Mutterdate, bevor ich davon dann 189 Kopien erstellen muss.
Interessant wird es dann, wie lange es dauert alle 190 Dateien beim Öffnen der Übersichtstabelle zu aktualisieren... Bin ich echt mal gespannt.

Danke für die Hilfestellungen!

Gruß,
Alex
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von balu »

Hallo Alex,

ich heiße dich hier im Forum auch Willkommen. :D

Wie ich sehe bist Du noch am testen, was für dich in Frage kommt. Und das Du auch auf die gesamtgeschwindigkeit beim einlesen achtest, finde ich sehr interessant. Würd mich hintereher, wenn Du fertig bist, sehr für das Ergebnis interessieren.


Nun, du hast jetzt schon 2 möglichkeiten um die Daten einzulesen. Aber wie heißt es da so schön?

Aller guten Dinge sind drei.

Ich möchte dir jetzt eine dritte möglichkeit vorschlagen. Sie ist aber mehr eine Variante, die Winfried vorgeschlagen hat. Und sie heißt:

=DDE()

Sie kann fast so ähnlich wie die ='file... Lösung gehanhabt werden. Jedoch hat sie noch einen vorteil, der nicht immer berücksichtigt wird, da selten darauf geachtet wird. Denn bei der ='file... Lösung, übrigens ist das auch der Fall bei dem Makro, werden die ausgewählten Tabellenblätter aus den einzelnen Verknüpften Dateien in der "Übersichts-Datei" versteckt eingebunden. Das kann man dadurch überprüfen, wenn man ein Blick in

-> Format
-> Tabelle
---> Einblenden

riskiert. Denn da sieht man alle Tabellenblätter aus den verknüpften Dateien, samt Pfad aufgelistet. Und wenn man jetzt nur eine versteckte Tabelle anklickt, und OK sagt, dann wird sie auch eingeblendet, und der gesamte Inhalt ohne besondere Formatierung wird als ein zusätzliches Tabellenblatt angezeigt.

Diese Art von Verknüpfung ist aber auch einem Limit unterlegen, welches bei 256 liegt, nachzulesen hier.
Man bedenke, das auch die Dateigröße der "Übersichts-Datei" dadurch anwächst. Und je nach Datenmenge der Verknüpften Tabellenblättern in den einzelnen Dateien, kann das ganz schön heftig ausfallen. Und bei ca. 190 Dateien fällt der größenzuwuchs recht deutlich auf.

Aber zurück zu =DDE()

Mit dieser Methode werden nur die angegebenen Zellinhalte direkt in die "Übersichts-Datei" verknüpft, es werden also keine versteckten Tabellenblätter angelegt. Und folgedessen wächst die Dateigröße auch nicht so stark an.

Hier noch mal die Formel von Winfried ausgeschrieben (angepasst an die Windows notation).

Code: Alles auswählen

='file:///C:/zentrale/firma/testdata/kunde_0001.ods'#$Tabelle1.$E$3
Und im vergleich dazu mit DDE

Code: Alles auswählen

=DDE("soffice";"C:\zentrale\firma\testdata\kunde_0001.ods";"$Tabelle1.$E$3")
Okay, im ersten Augenblick erscheint sie etwas länger, aber das kommt nur dadurch, weil "soffice" noch zusätzlich aufgeführt werden MUSS!
Und jetzt folge ich mal Winfrieds Erklärung.

In A1 = unveränderlicher Teil 1:
C:\zentrale\firma\testdata\kunde_

In B1 = unveränderlicher Teil 2:
.ods

In C1 = unveränderlicher Teil 3:
$Tabelle1.$E$3

Die Forlaufende Nummer wird auch hier mit TEXT und ZEILE ermittelt, jedoch fange ich bei Zeile 1 an, und setze die Nummerierung auch 4-Stellig an.
TEXT((ZEILE());"0000")

Und nun die gesamte Formel in D1
=DDE("soffice";$A$1&TEXT((ZEILE());"0000")&$B$1; $C$1)

In den Zellen A1, B1 und C1 kommen die Werte (Texte) so rein wie zu sehen, also ohne Doppelte Anführungszeichen!

Lass uns wissen wie Du zurecht gekommen bist.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von turtle47 »

Hallo Zusammen,
sammawatt hat geschrieben:Interessant wird es dann, wie lange es dauert alle 190 Dateien beim Öffnen der Übersichtstabelle zu aktualisieren... Bin ich echt mal gespannt
Bei einem Test mit 200 Dateien auf meinem Läppi (1,5 GHz) habe ich folgende Zeiten gemessen:

File-Lösung > ca. 35 Sekunden :(
DDE-Lösung > ca 3 Sekunden :lol:

Also ist die DDE-Lösung rund 10 mal schneller.

Schöne Grüsse.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von balu »

Hallo Jürgen,

oh oh! Da hast Du dir aber echt mühe gegeben. Respekt :D
Und danke für die Ergebnismitteilung, das ist ja doch nicht zu verachten. Mit so einem gravierenden unterschied hatte ich nicht gerechnet :shock:.

Aber wie sieht das denn aus, kann man eine DDE Verknüpfung nicht in dein Makro einbauen? Das wäre doch auch eine suppi Sache. Denn dann müsste man die Pfade nicht von Hand anpassen, da dies auch schnell zu Fehlern führen kann. Die Idee mit den einzelnen Menüs in deinem Makro ist einfach klasse, da es einfach Bedienerfreundlicher ist :D.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von turtle47 »

Hallo Balu,
balu hat geschrieben:oh oh! Da hast Du dir aber echt mühe gegeben
Du kennst mich doch > "Faulheit denkt scharf" :lol:

Ich habe mir ein kleines Makro geschrieben welches mir die Dateien in einem Testordner erzeugt.
Diese Datei in einem Testordner speichern und öffnen. Beim Starten des Makros werden in diesem Ordner die neuen Dateien erstellt. In Tabelle1, Zelle A1 jeder Datei wird eine Zufallszahl geschrieben.
Edit: Code angepasst nach dem Hinweis von Balu im nächsten Beitrag
Datei_001.ods
(10.68 KiB) 82-mal heruntergeladen
In folgender Datei kann man dann die gewünschte DDE-Verknüpfung erstellen lassen.
DDE-Verknüpfung.ods
(9.96 KiB) 110-mal heruntergeladen
Viel Spass beim testen. :wink:

Jürgen
Zuletzt geändert von turtle47 am Mi, 25.03.2009 17:30, insgesamt 1-mal geändert.
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von balu »

Hallo Jürgen,

klasse was Du hier einstellst :D.

Jedoch gibts da einen kleinen Wehrmutstropfen an der ganzen Sache. Das Makro, welches die Testdateien erstellen soll, will nicht tun, was es tun soll. Sprich, es bricht mit ner Fehlermeldung ab.
OpenOffice.org 3.0 hat geschrieben: BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden.
Und es wird dann folgende Code-Zeile markiert.

Code: Alles auswählen

Dlg_Wait = CreateUnoDialog(Dialoglibraries.Standard.Dlg_Wait)
Getestet unter OOo 2.2.1 mit Java 1.5.0_11.
Und mit Portable 3.0.0 ohne Java.


Tut mir leid dir das zu sagen, aber mit dem DDE-Makro stimmt was nicht.
Denn wenn ich dies das erstemal in der Blanken Datei starte, werden dann wohl die Verküpfungen angelegt, aber nach einem Speichern (unter neuem Namen) und erneutem öffnen kommt ja dann die Frage nach dem aktuallisieren.
Und genau da kommt jetzt das merkwürdige verhalten.
Wenn ich die Frage nach dem aktuallisieren mit JA beantworte, sehe ich das nach einer gewissen Zeit der dementsprechende Dialog verschwindet, und sofort wieder erscheint. Ich habe jetzt mal diesen Dialog beiseite gezogen, und den nächsten auch usw....
Und zu guter letzt hatte ich nun 7 mal den gleichen Dialog auf'm Bildschirm vor mir. Und ich muss auch jeden anklicken. Hab dann wohl immer auf das X rechts oben geklickt, aber merkwürdig ist das schon.


Also wenn Du das DDE-Makro noch mal untersuchen könntest, wäre echt klasse von dir :wink:.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von turtle47 »

Hi Balu,
balu hat geschrieben:Jedoch gibts da einen kleinen Wehrmutstropfen an der ganzen Sache. Das Makro, welches die Testdateien erstellen soll, will nicht tun, was es tun soll. Sprich, es bricht mit ner Fehlermeldung ab.
Danke für den freundlichen Hinweis. :D
Habe den Code entsprechend angepasst.

Das Verhalten der DDE-Datei kann ich nicht nachstellen.
Mal abwarten, ob das bei anderen auch so ist.

Danke Dir Balu fürs Ausprobieren.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von balu »

Hallo Jürgen,

frohe Botschaften :D.

1.)
Die geänderte Datei funktioniert jetzt auch bei mir.


2.)
Die DDE-Datei, mit dem Makro, funktioniert auch einwandfrei :mrgreen:.
Ich hab das ganze noch mal getestet, und dabei ist mir folgendes aufgefallen.
In dem Verzeichnis wo die verknüpften Dateien sind, befand sich auch die Datei "Dateinamen_Ordner_ auslesen.ods", die Du hier in deinem ersten Beitrag verlinkt hattest. Und als ich diese Datei aus der Verknüpfung gelöst hatte, und in der Tabelle den dementsprechenden Eintrag löschte, funktioniert jetzt die Datei wie erhofft. Also war bei mir der Übeltäter für das nicht bei dir reproduzierbare fehlverhalten die "Dateinamen_Ordner_ auslesen.ods"-Datei. Es scheint so, als wenn durch diese Datei eine kurze DDE-Schleife entstanden war. Das also ein DDE das nächste DDE aufgerufen hat. Ich kann es nicht anders beschreiben.
Wie gesagt, nach dem entfernen der Verknüpfung und Eintrag löschen, habe ich jetzt keine Probleme mehr.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von turtle47 »

Hallo Balu,
balu hat geschrieben:frohe Botschaften
Dafür bin ich immer empfänglich.
balu hat geschrieben:Die geänderte Datei funktioniert jetzt auch bei mir.
Na, prima.
balu hat geschrieben:Wie gesagt, nach dem entfernen der Verknüpfung und Eintrag löschen, habe ich jetzt keine Probleme mehr.
Da bin ich jetzt aber beruhigt.

Bleibt jetzt noch abzuwarten ob "sammawatt" das Thema noch interessiert.

Schöne Grüsse.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
tunix_xl
**
Beiträge: 41
Registriert: Di, 27.11.2007 17:09

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von tunix_xl »

Hallo Jürgen @all
Bleibt jetzt noch abzuwarten ob "sammawatt" das Thema noch interessiert.
Ihn vlt. nicht - aber mich: klappt prima, kann ich gebrauchen.

Ein Hinweis an die "Linuxer": Im Makro von Jürgen muss in folgender Zeile der Schrägstich umgedreht werden.
Von "Backslash" auf "normal"

sFormula = "=DDE(""soffice"";""" & sPath & "/" & sValue1 & """;" & """$" & nameSheet & "."& nameCell & """)"

Vielen Dank und viele Grüße
t.
Toshiba Satelite L20 ubuntu 09.04 / 32bit / ooffice3.1 / LAMP
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Verknüfpungen zu Dateien / fortlaufende Dateinamen

Beitrag von komma4 »

tunix_xl hat geschrieben:Im Makro von Jürgen muss in folgender Zeile der Schrägstich umgedreht werden.
Von "Backslash" auf "normal"

Code: Alles auswählen

' einmaliger Funktionsaufruf
' System-Pfadtrennzeichen zwischenspeichern
sPfadTrenner = getPathSeparator()
' 
' plattform-unabhängige Lösung
sFormula = "=DDE(""soffice"";""" & sPath & sPfadTrenner & sValue1 & """;" & """$" & nameSheet & "."& nameCell & """)"
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)
Antworten