[Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

classic Classic list List threaded Threaded
11 messages Options
Andreas Borutta Andreas Borutta
Reply | Threaded
Open this post in threaded view
|

[Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

Moin.

Ein guter Freund bat mich gestern um Rat zu Calc, aber ich musste
passen.

Er hat eine, wie ich vermute klassische, Warenwirtschaftsaufgabe.

Es gibt zu jedem Auftrag eine Materialiste. Der Name des
Tabellenblattes sei "T_Material".
Die Material steht in einer separaten Datei.
Der Name sei "file:///~/Documents/Projekte/Projekt-1.ods"

A1=Artikel
B1=Menge

A2=Rohr 1m
B2=3

Weiterhin gibt es eine Warenbestandsliste in einer anderen Datei.
Der Name sei "Warenbestand.ods"


Nun ist es problemlos möglich in Warenbestand.ods eine
dokumentübergreifende Referenz einzufügen.

A1=Artikel
B1=Datum
C1=Einkaufsmenge
D1=Restmenge

A2=Rohr 1m
B2=10.04.19
C2=30
D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material.B2

So weit, so trivial.


Wäre es möglich den Ordner "file:///~/Documents/Projekte/" so zu
"überwachen", dass jede neue Datei, z.B. "Projekt-2.ods" automatisch
in Warenbestand.ods passend eingefügt wird?

Ergebnis also:

D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material.B2-C2-'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2

Vermutlich ist sowas ohne größeren Programmieraufwand nicht zu machen,
oder?

Ich wollte durch meine Nachfrage sicherstellen, dass ich nicht
vielleicht eine elegante einfache Lösung übersehe.

Über euren Rat freue ich mich.

Andreas
--
http://fahrradzukunft.de


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

Hallo Andreas,

> Ich wollte durch meine Nachfrage sicherstellen, dass ich nicht
> vielleicht eine elegante einfache Lösung übersehe.

CALC ist ein Tabellenkalkulationsprogramm, keine Datenbank. Das, was da
gemacht werden soll, riecht an allen Ecken und Enden nach Datenbank -
aber eine andere Antwort hast Du wahrscheinlich von mir dazu sowieso
nicht erwartet. Und das hilft Dir nicht weiter, weil es eben doch wohl
die komplizierte Calc-Lösung sein soll.

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Jörg Schmidt-2 Jörg Schmidt-2
Reply | Threaded
Open this post in threaded view
|

RE: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

In reply to this post by Andreas Borutta
Hallo,

> From: Andreas Borutta [mailto:[hidden email]]
> Sent: Saturday, July 20, 2019 6:11 PM
> To: [hidden email]
> Subject: [de-discuss] [Calc] Warenwirtschaft: Zellwerte aus
> neu hinzugefuegtem Dokumente beziehen
>

> Wäre es möglich den Ordner "file:///~/Documents/Projekte/" so zu
> "überwachen", dass jede neue Datei, z.B. "Projekt-2.ods" automatisch
> in Warenbestand.ods passend eingefügt wird?
>
> Ergebnis also:
>
> D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material
> .B2-C2-'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2
>
> Vermutlich ist sowas ohne größeren Programmieraufwand nicht zu machen,
> oder?

eigentlich genügt:

Sub Main
        Dim alle()
        datei = Dir("~/Documents/Projekte/*.ods", 0)
        Do
                i = UBOUND(alle())
                Redim Preserve alle(i+1)
                alle(i+1) = datei
                datei = Dir
        Loop While datei <> ""
End Sub

plus das Zusammenbauen des Formelstrings.

Problematisch ist das eine Tabellenformel nur eine begrenzte Länge haben kann, ich
weiß garnicht wieviel aktuell bei LO. Man müsste also überlegen wie man das löst,
abhängig von der zu erwartenten Anzahl an Dateien.


Gruß
Jörg


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Andreas Borutta Andreas Borutta
Reply | Threaded
Open this post in threaded view
|

Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

In reply to this post by Robert Großkopf
Robert Großkopf:

>> Ich wollte durch meine Nachfrage sicherstellen, dass ich nicht
>> vielleicht eine elegante einfache Lösung übersehe.
>
> CALC ist ein Tabellenkalkulationsprogramm, keine Datenbank. Das, was da
> gemacht werden soll, riecht an allen Ecken und Enden nach Datenbank -
> aber eine andere Antwort hast Du wahrscheinlich von mir dazu sowieso
> nicht erwartet. Und das hilft Dir nicht weiter, weil es eben doch wohl
> die komplizierte Calc-Lösung sein soll.

Du hast natürlich ohne Frage Recht damit, dass es eigentlich eine
Aufgabe für eine Datenbank ist. Das ist mir auch klar.

Aber der Freund ist mit Datenbanken völlig unerfahren, kann jedoch mit
Tabellen gut umgehen.

Mich interessierte schlicht, was mit Calc in Bezug auf
dokumentenübergreifende Formeln so geht. Denn nicht selten kommt es ja
vor, dass Calc weit mehr kann als man zunächst vermutet hat.



Andreas
--
http://fahrradzukunft.de


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Andreas Borutta Andreas Borutta
Reply | Threaded
Open this post in threaded view
|

Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

In reply to this post by Jörg Schmidt-2
Jörg Schmidt:

Hallo Jörg.

>> Wäre es möglich den Ordner "file:///~/Documents/Projekte/" so zu
>> "überwachen", dass jede neue Datei, z.B. "Projekt-2.ods" automatisch
>> in Warenbestand.ods passend eingefügt wird?
>>
>> Ergebnis also:
>>
>> D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material
>> .B2-C2-'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2

Hier hatte sich ein Fehler eingeschlichen, es sollte natürlich heißen:
D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material.B2-'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2

>> Vermutlich ist sowas ohne größeren Programmieraufwand nicht zu machen,
>> oder?
>
> eigentlich genügt:
>
> Sub Main
> Dim alle()
> datei = Dir("~/Documents/Projekte/*.ods", 0)
> Do
> i = UBOUND(alle())
> Redim Preserve alle(i+1)
> alle(i+1) = datei
> datei = Dir
> Loop While datei <> ""
> End Sub
>
> plus das Zusammenbauen des Formelstrings.
>
> Problematisch ist das eine Tabellenformel nur eine begrenzte Länge haben kann, ich
> weiß garnicht wieviel aktuell bei LO. Man müsste also überlegen wie man das löst,
> abhängig von der zu erwartenten Anzahl an Dateien.

Herzlichen Dank erstmal für Dein Makro.

Kann denn ein Makro ein Ereignis wie "Im Ordner /~/Documents/Projekte
wird eine neue Datei angelegt/eine vorhandene gespeichert" überwachen?

Zur Länge:

LO ändert leider automatisch den Platzhalter "~" in den realen Pfad.
Dadurch würde die Formel natürlich sehr lang.

Beispiel:
file:///Users/MeinBenutzername/Documents/Projekte/Projekt-1.ods

Um wieviele Dokumente würde es gehen? Geschätzt vielleicht bis zu 20,
sagt mein Freund.

Den Pfad könnte man durch Kürzen der Ordner und Dateinamen natürlich
eindampfen.
file:///Users/MeinBenutzername/P/P-1.ods

Aber eigentlich kann man eine solche Anzahl von aktiven Projekten auch
einfach als Tabellenblätter neben dem Tabellenblatt "T_Warenbestand"
anlegen.

Das scheint mir vernünftiger.

Mittelfristig will er natürlich auf eine datenbankbasierte Lösung
setzen.

Vielleicht https://www.odoo.com/de_DE/page/editions

(OpenSource, webbasiert)

Damit kenne ich mich nicht aus.




Andreas
--
http://fahrradzukunft.de


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Jörg Schmidt-2 Jörg Schmidt-2
Reply | Threaded
Open this post in threaded view
|

Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

Hallo,

> From: Andreas Borutta [mailto:[hidden email]]
> Sent: Sunday, July 21, 2019 12:35 PM
> To: [hidden email]
> Subject: [de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte
> aus neu hinzugefuegtem Dokumente beziehen

> Kann denn ein Makro ein Ereignis wie "Im Ordner /~/Documents/Projekte
> wird eine neue Datei angelegt/eine vorhandene gespeichert" überwachen?

Nein. Da aber eine Aktualisierung ohnehin nur dann nötig ist wenn Berechnungen,
die auf der Zelle basieren deren Inhalt das Makro erstellt, neu durchgeführt oder
Bestehende aktualisiert werden, reicht es ein Ereignis zu nutzen das dann
stattfindet und daran das Makro zu binden.

> Zur Länge:

> Um wieviele Dokumente würde es gehen? Geschätzt vielleicht bis zu 20,

Dann genügt es die Ausdrücke der Form
"file:///Users/MeinBenutzername/Documents/Projekte/Projekt-1.ods" als Benannte
Bereiche (entsrechend Tabelle-Benannte Bereiche-Festlegen im Calc-Menü), mit
kurzen Namen, per Makro zu erstellen/festzulegen und diese kurzen Namen dann in
der Formel zu verwenden.

> Mittelfristig will er natürlich auf eine datenbankbasierte Lösung
> setzen.
>
> Vielleicht https://www.odoo.com/de_DE/page/editions

Wenn das die Option ist, dann zöge ich eine lokale Calc-Tabelle aber einer
Online-Lösung vor, rein aufgrund der Datensicherheit.

(Aber auf Datensicherheit Wert zu legen ist heutzutage wohl eine aussterbende
Tugend, denn Bequemlichkeit ist der Mehrheit wichtiger, und da das Gehacktwerden
von Online-Daten, ja meist ohne ernstliche Haftungs-Konsequenzen bleibt, ist da
kaum auf Besserung zu rechnen.)

Besser wäre trotzdem auch lokal eine Datenbank, aber wenn die Wahl lautet sicher
oder effizient, ist mir sicher wichtiger.


Gruß
Jörg



--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Andreas Borutta Andreas Borutta
Reply | Threaded
Open this post in threaded view
|

Re: Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

Jörg Schmidt:

Guten Morgen Jörg.

>> From: Andreas Borutta [mailto:[hidden email]]
>> Sent: Sunday, July 21, 2019 12:35 PM
>> To: [hidden email]
>> Subject: [de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte
>> aus neu hinzugefuegtem Dokumente beziehen
>
>> Kann denn ein Makro ein Ereignis wie "Im Ordner /~/Documents/Projekte
>> wird eine neue Datei angelegt/eine vorhandene gespeichert" überwachen?
>
> Nein. Da aber eine Aktualisierung ohnehin nur dann nötig ist wenn Berechnungen,
> die auf der Zelle basieren deren Inhalt das Makro erstellt, neu durchgeführt oder
> Bestehende aktualisiert werden, reicht es ein Ereignis zu nutzen das dann
> stattfindet und daran das Makro zu binden.

Falls Du Lust hast, würde ich mich über eine Beispieldatei mit dem
Makro freuen. Vielleicht ist sowas auch für andere Mitleser
interessant.
 
>> Zur Länge:
>
>> Um wieviele Dokumente würde es gehen? Geschätzt vielleicht bis zu 20,
>
> Dann genügt es die Ausdrücke der Form
> "file:///Users/MeinBenutzername/Documents/Projekte/Projekt-1.ods" als Benannte
> Bereiche (entsrechend Tabelle-Benannte Bereiche-Festlegen im Calc-Menü), mit
> kurzen Namen, per Makro zu erstellen/festzulegen und diese kurzen Namen dann in
> der Formel zu verwenden.

Hier kann ich noch nicht folgen.
In den jeweiligen Dokumenten "Projekt-1", "Projekt-2" steht ja kein
Pfad in den Zellen. Daher würde dort ein benannter Bereich keine
wesentliche Verkürzung bringen.

>> Mittelfristig will er natürlich auf eine datenbankbasierte Lösung
>> setzen.
>>
>> Vielleicht https://www.odoo.com/de_DE/page/editions
>
> Wenn das die Option ist, dann zöge ich eine lokale Calc-Tabelle aber einer
> Online-Lösung vor, rein aufgrund der Datensicherheit.

Der Freund beabsichtigt nicht, es in der Cloud zu verwenden. Man kann
das System auch lokal via "localhost" (im Browser) verwenden.


Noch eine Frage (an alle die mitlesen) zur Referenzierung:

Angenommen es gibt folgende Formel im
Tabellenblatt 1 "Warenbestand" D2
=C2-$'T_Projekt.1'.B2-$'T_Projekt.2'.B2

"Projekt-1" sei Tabellenblatt 2
"Projekt-2" sei Tabellenblatt 3

Gibt es eine Möglichkeit die Bezüge so zu schreiben, das die
Subtrahenden mit den länglichen Bezügen einzeln aufgeführt werden
müssen, sondern sozusagen selber einen Bereich bilden?

Also sinngemäß etwas wie:

=C2-TABELLENBLATT(2-3).B2


Ich hoffe, es ist verständlich, was ich meine.


Andreas
--
http://fahrradzukunft.de


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Jörg Schmidt-2 Jörg Schmidt-2
Reply | Threaded
Open this post in threaded view
|

Re: Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

 

> -----Original Message-----
> From: Andreas Borutta [mailto:[hidden email]]
> Sent: Monday, July 22, 2019 9:13 AM
> To: [hidden email]
> Subject: [de-discuss] Re: Re: [Calc] Warenwirtschaft:
> Zellwerte aus neu hinzugefuegtem Dokumente beziehen

> > Dann genügt es die Ausdrücke der Form
> >
> "file:///Users/MeinBenutzername/Documents/Projekte/Projekt-1.o
> ds" als Benannte
> > Bereiche (entsrechend Tabelle-Benannte Bereiche-Festlegen
> im Calc-Menü), mit
> > kurzen Namen, per Makro zu erstellen/festzulegen und diese
> kurzen Namen dann in
> > der Formel zu verwenden.
>
> Hier kann ich noch nicht folgen.
> In den jeweiligen Dokumenten "Projekt-1", "Projekt-2" steht ja kein
> Pfad in den Zellen. Daher würde dort ein benannter Bereich keine
> wesentliche Verkürzung bringen.

Es geht um die Datei in welcher in D2 die Formel steht:

D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material.B2-'file:///~/Docum
ents/Projekte/Projekt-2.ods'#$T_Material.B2

in dieser Datei kann/sollte/muss per Makro dann jeweils ein benannter Bereich mit
dem Formelausdruck belegt werden und ein kurzer Name zugewiesen. Danach können
diese Namen dann Direkt in der Formel genutzt werden.

Also:
-Tabelle-Benannte Bereiche-Festlegen

und dort 2 Einträge (a) und (b), mit:

(a)
Name: Bla1
Bereich oder Formelausdruck:
'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material.B2

(b)
Name: Bla2
Bereich oder Formelausdruck:
'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2


Damit läst sich dann in der Zelle schreiben:

D2=C2-Bla1-Bla2


> Der Freund beabsichtigt nicht, es in der Cloud zu verwenden. Man kann
> das System auch lokal via "localhost" (im Browser) verwenden.

Ok, OK ... mein Kommentar war nur der ganz allgemeine Versuch die Problematik
viral ins Bewusstsein der Mitleser zu rufen

Wenn hier von "(im Browser)" die Rede ist, ist das ein anderes Thema, was mich
aber aus anderen Gründen nicht fröhlich stimmt, die auch wieder etwas mit
"Zeitgeist" zu tun haben, nämlich warum man es so toll findet alles in 'labbrige'
Browser-Applikationen zu verpacken, nur mit der Begründung der
Multiplattformfähigkeit und der angeblichen Aufwandsersparnis, statt robuste
Multi-Plattform-Programme zu schreiben (LO ist ein Solches).



Gruß
Jörg



--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Jörg Schmidt-2 Jörg Schmidt-2
Reply | Threaded
Open this post in threaded view
|

Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

In reply to this post by Jörg Schmidt-2
Hallo Gerhard,

Du bist wohl hier Opfer der nicht richtig funktionierenden Mailingliste, oder wolltest Du mir tatsächlich persönlich schreiben?

Ich antworte mal per persönlicher Mail plus Antwort an die Liste

> Locker dahingesagt!

nein, garnicht, denn ich hatte mir vor meiner Antwort sehr wohl zumindest einen funktionierenden Weg überlegt.

Das ich nicht besonders konkret geantwortet habe (das meinst Du wohl mt "locker") hängt nur damit zusammen das die Prozesbeschreibung von Andereas umfangreich war und icvh zu faul war diese im Detail zu durchdenken, was aber notwendig wäre um ein konkretes Ereignis zu identifizieren auf das man ZWECKMÄSSIGERWEISE reagieren kann.

z.B. ist bereits Dein Vorschlag nur beim Öffnen der Datei zu reagieen, dann zweckmäßig wenn feststünde das während des Geöffnetseins der Datei keine neuen Dateien in das Verzeichnis aufgenommen werden. In diesem Falle wäre das Öffnen-Ereignis also als Startereignis gfür das Makro geeignet, ob dieser Falkl vorliegt weiß ich aber nicht, das könnte/müsste Andreas sagen.

> Ich sehe kein Ereignis, das auf Berechnung oder
> Aktualisieren (wieso eigentlich?) reagiert, auch keinen Listener, den
> man selbst definieren müsste (braucht man z. B., wenn man auf
> Mausklicks
> reagieren will, habe ich mal verwendet).

Wenn Du auf "Berechnung oder Aktualisieren" reagieren willst genügt im Zweifel ("im Zweifel" weil es funktioniert, aber nicht besonders elegant ist) eine benutzerdefinierte Funktion der Du als Parameter eine der relevanten Zellen übergibt, also der Zellen in denem etwas aktualisierend berechnet wird, und die dann ihrerseits das Makro startet, also (sinngemäß):

Function bla(x)
        Das_Arbeitsmakro()
End Function


Sub Das_Arbeitsmakro()
        '...
End Sub

und in irgendeiner Zelle des Tabellenblattes dann aufrufen mit der Formel:

=BLA(A1)

(A1 ist hier nur ein Beispiel)

(Am Rande: man muss bei dieser Art der Verwendung von benutzerdefinierten Funktionen sehr genau darauf achten was direkt in der Funktion geschehen soll, denn das direkte Ändern von Zellwerten ist nicht möglich.)  

> ob alle
> Projektdateien
> schon verwendet sind, und andernfalls die Daten ergänzen.
> Aber wie prüft
> man das?

Indem man alle Dateien im Verzeichnis per Makro frisch ausliest und mit den bestehenden Angaben in der Datei überprüft.

"bestehenden Angaben" hängen im Konkreten von der gewählten Implementierung ab. Ich hatte z.B. vorgeschlagen benannte Bereiche mit Namen "Bla" plus laufende Nummer zu nutzen.  

> Ich denke, dass mehrere Tabellenblätter dann doch die bessere Lösung
> sind,

Ich habe darüber garnicht speziell nachgedacht, weil ich rein mechanisch die indirekt aufgeworfene Frage des Makros beantwortet habe.



Gruß
Jörg


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

Hallo Jörg,

Am 22.07.2019 um 11:32 schrieb Jörg Schmidt:
> Hallo Gerhard,
>
> Du bist wohl hier Opfer der nicht richtig funktionierenden Mailingliste, oder wolltest Du mir tatsächlich persönlich schreiben?
Nein, der Fehler liegt bei mir, ich wollte das an Andreas direkt
schicken, so wie ich zuvor schon meine Meinung, dass das besser mit
einer Datenbank zu lösen wäre (wie ja auch Robert Großkopf dann
schrieb), ihm privat geschickt hatte, weil ich den Calc-Experten nicht
vorgreifen wollte. Ich wollte ihm nur mein Unverständnis mitteilen,
damoit er gegebenenfalls bei dir nachfragt, denn die Aufgabenstellung
ist mir zu unklar, daher wollte ich nicht selbst offiziell in die
Diskussion eingreifen.
>
> Ich antworte mal per persönlicher Mail plus Antwort an die Liste
>
>> Locker dahingesagt!
> nein, garnicht, denn ich hatte mir vor meiner Antwort sehr wohl zumindest einen funktionierenden Weg überlegt.
>
> Das ich nicht besonders konkret geantwortet habe (das meinst Du wohl mt "locker") hängt nur damit zusammen das die Prozesbeschreibung von Andereas umfangreich war und icvh zu faul war diese im Detail zu durchdenken, was aber notwendig wäre um ein konkretes Ereignis zu identifizieren auf das man ZWECKMÄSSIGERWEISE reagieren kann.
>
> z.B. ist bereits Dein Vorschlag nur beim Öffnen der Datei zu reagieen, dann zweckmäßig wenn feststünde das während des Geöffnetseins der Datei keine neuen Dateien in das Verzeichnis aufgenommen werden. In diesem Falle wäre das Öffnen-Ereignis also als Startereignis gfür das Makro geeignet, ob dieser Falkl vorliegt weiß ich aber nicht, das könnte/müsste Andreas sagen.
Da du von Ereignis sprachst, habe ich automatisch angenommen, dass du
von den offiziellen Ereignissen der IDE im engeren Sinn sprichst. Ich
habe erst durch diese Mail verstanden, was gemeint ist.

>> Ich sehe kein Ereignis, das auf Berechnung oder
>> Aktualisieren (wieso eigentlich?) reagiert, auch keinen Listener, den
>> man selbst definieren müsste (braucht man z. B., wenn man auf
>> Mausklicks
>> reagieren will, habe ich mal verwendet).
> Wenn Du auf "Berechnung oder Aktualisieren" reagieren willst genügt im Zweifel ("im Zweifel" weil es funktioniert, aber nicht besonders elegant ist) eine benutzerdefinierte Funktion der Du als Parameter eine der relevanten Zellen übergibt, also der Zellen in denem etwas aktualisierend berechnet wird, und die dann ihrerseits das Makro startet, also (sinngemäß):
>
> Function bla(x)
> Das_Arbeitsmakro()
> End Function
>
>
> Sub Das_Arbeitsmakro()
> '...
> End Sub
>
> und in irgendeiner Zelle des Tabellenblattes dann aufrufen mit der Formel:
>
> =BLA(A1)
>
> (A1 ist hier nur ein Beispiel)
>
> (Am Rande: man muss bei dieser Art der Verwendung von benutzerdefinierten Funktionen sehr genau darauf achten was direkt in der Funktion geschehen soll, denn das direkte Ändern von Zellwerten ist nicht möglich.)
>
>> ob alle
>> Projektdateien
>> schon verwendet sind, und andernfalls die Daten ergänzen.
>> Aber wie prüft
>> man das?
> Indem man alle Dateien im Verzeichnis per Makro frisch ausliest und mit den bestehenden Angaben in der Datei überprüft.
>
> "bestehenden Angaben" hängen im Konkreten von der gewählten Implementierung ab. Ich hatte z.B. vorgeschlagen benannte Bereiche mit Namen "Bla" plus laufende Nummer zu nutzen.
>
>> Ich denke, dass mehrere Tabellenblätter dann doch die bessere Lösung
>> sind,
> Ich habe darüber garnicht speziell nachgedacht, weil ich rein mechanisch die indirekt aufgeworfene Frage des Makros beantwortet habe.
>
>
>
> Gruß
> Jörg
>
>
Gruß

Gerhard

--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Andreas Borutta Andreas Borutta
Reply | Threaded
Open this post in threaded view
|

Re: Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

In reply to this post by Jörg Schmidt-2
Jörg Schmidt:
>Gerhard Weydt:

>> Locker dahingesagt!
>
> nein, garnicht, denn ich hatte mir vor meiner Antwort sehr wohl
> zumindest einen funktionierenden Weg überlegt.
>
> Das ich nicht besonders konkret geantwortet habe (das meinst Du
> wohl mt "locker") hängt nur damit zusammen das die
> Prozesbeschreibung von Andereas umfangreich war und icvh zu faul
> war diese im Detail zu durchdenken, was aber notwendig wäre um ein
> konkretes Ereignis zu identifizieren auf das man ZWECKMÄSSIGERWEISE
> reagieren kann.
>
> z.B. ist bereits Dein Vorschlag nur beim Öffnen der Datei zu
> reagieen, dann zweckmäßig wenn feststünde das während des
> Geöffnetseins der Datei keine neuen Dateien in das Verzeichnis
> aufgenommen werden. In diesem Falle wäre das Öffnen-Ereignis also
> als Startereignis gfür das Makro geeignet, ob dieser Falkl vorliegt
> weiß ich aber nicht, das könnte/müsste Andreas sagen.

Erstmal ganz herzlichen Dank für Deine Überlegungen, Jörg. Auch an
Dich, Gerhard, dass Du da nachgehakt hast.

Als ich den Thread eröffnet habe, hatte ich noch keine genaue
Vorstellung, welche Art von "Monitoring" im Verzeichnis stattfinden
müsste.

Damit eine Bestandsliste stets aktuell ist, müsste sowohl festgestellt
werden, ob es in einer bestehenden Datei eine Änderung eines
Zellwertes gab als auch ob eine ganz neue Datei hinzugekommen ist.

Deine Skizze, Jörg, werde ich in meinem Archiv ablegen, damit ich
ggfs. darauf später zugreifen kann.

Vorerst konnte ich meinen Freund von einem pragmatischen Vorgehen
überzeugen: er wird alle Projektlisten jetzt als Tabellenblätter im
gleichen Dokument anlegen, in der sich auch die Bestandsliste
befindet.

https://www.dropbox.com/s/n1fiqa2qrxmef5z/jens-warenbestand-und-projekte.ods

Mit dem sinnvollen Einsatz von benannten Bereichen bin ich noch
unerfahren (der kürzlich dazu eröffnete Thread ist noch ohne Antwort).
Vielleicht wäre damit noch eine Verbesserung möglich?

Ob und wie man in dieser Tabelle bewirken könnte, dass automatisch
jedes neue Arbeitsblatt mit dem Präfix "T_Projekt." in der Formel als
Subtrahend passend auftaucht, weiß ich nicht.
Dies ist aber nicht als versteckte Bitte um ein Makro zu verstehen.

Da die Tabelle eh nur ein Zwischenstadium bis zur Datenbank darstellen
wird, lohnt sich da kein besonderer Aufwand.

>> Ich denke, dass mehrere Tabellenblätter dann doch die bessere
>> Lösung sind,
>
> Ich habe darüber garnicht speziell nachgedacht, weil ich rein
> mechanisch die indirekt aufgeworfene Frage des Makros beantwortet
> habe.

Haltet euch kühl.

Herzliche Grüße, Andreas



-- http://fahrradzukunft.de


--
Liste abmelden mit E-Mail an: [hidden email]
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy