Hallo Pretender,
eins vorweg. Auch wenn Du meinst das sich das alles nach rumgemäääckere anhört, so ist es das nicht.
Ich hätte nicht gedacht, dass es so extrem aufwendig ist, so etwas unter OO Calc zu programmieren.
Ist es doch im prinzip auch gar nicht, zumindest für einige
Das war unter Excel
schon etwas leichter, aber es liegt halt daran, dass ich mich nicht mit OO Calc beschäftigen mußte.
Das hat nix mit den beiden Officen an sich zu tun, sondern das wir das Pferd jetzt komplett neu Satteln. Und wenn ich da so an meine ersten gehversuche zurückdenke, dann dachte ich fast genau so wie Du. Nur war ich nicht umgestiegen, sondern eingestiegen. Doch so nach und nach merkte ich bei meinem damaligem Projekt das das eine oder andere noch mit eingebaut werden musste. Und dann wurds nicht "gar Luschidich", sondern im Gegenteil gar richtig Kriminel.
Und ob Dus glaubst oder nicht, ich hatte die letzten Tage wieder so ein Kriminelles Erlebnis mit diesem unseren Projekt. Frag mich nicht wieviele Pläne ich hatte um mein jetziges Etappen-Ziel zu erreichen. Und dabei habe ich noch nicht mal mein Hauptziel geschafft.
Um was geht es denn da überhaupt?
Nun, wir hatten ja schon das Thema: "Externe Dateien" angesprochen. So weit, so klar.
Jedoch seh ich das schon aus einem anderen Blickwinkel. Wenn eine externe Datei (kurz: ExD) geladen wird und mit ihr ein Datenaustausch via Dialog stattfindet, egal ob nur lesend oder schreibend, dann muss dem Benutzer der Hauptdatei mitgeteilt werden das eine ExD geöffnet ist. Denn es ist ja nicht gesagt, das nach einer einmaligen Aktion die ExD sofort wieder geschlossen wird, sondern noch weitere Aktionen durchgeführt werden und nicht nur mit der ExD.
Hört sich ja noch relativ Harmlos an. Doch die ExD soll ja gar nicht von Hand direkt bearbeitet werden, sondern das soll das Makro machen, so das es keiner mitbekommt. Das nicht wegen Heimlichtuerei, nein, weil es stört wenn auf einmal eine Exd auf dem Bildschirm aufpoppt. Und deshalb soll die ExD schön unsichtbar im Hintergrund bleiben.
Und daraus ergibt sich dann ein weiteres Problem. Da sie unsichtbar ist, wird sie auch nicht in der Taskleiste angezeigt. Und in folge dessen kann man sie auch nicht von Hand schließen, das muss das Makro erledigen.
Mein Etappenziel war, eine ExD öffnen, dem Benutzer mitteilen das eine ExD geöffnet ist, und das der Benutzer die Möglichkeit hat diese Datei auch zu schließen.
Und ja! Ich habe dies erreicht!
Trotz meiner "Schatzkiste" des ersten Projekts stehe ich aber noch vor einem ganz anderen Problem, ich konnte es mit ihr also noch nicht lösen.
Es geht darum, das mein erreichtes Etappenziel nur dann wie gewünscht funktioniert, so lange man den Dialog nicht beendet. Durch das beenden des Dialogs verschwindet der Inhalt der Variablen, und es kommt zu einer Fehlermeldung.
Aber nun erkläre ich mal wie meine KOMPLETT NEU ERSTELLTE Beispieldatei zu Handhaben ist.
Doch zuvor noch ein wichtiger Hinweis.
Die Datei darf NIE UND NIMMER mit Excel in Kontakt kommen. Es dürfen auch keine Daten, oder sonstiges, von Excel nach OO koppiert werden! Es ist nämlich nicht ausgeschlossen das dadurch etwas in OO reinkopiert wird, was der Datei nicht gut bekommt. Ich spreche jetzt nicht von Virus & Co, sondern irgendetwas anderes was man nicht sofort sieht, aber dennoch da ist, irgendwelche komische Daten oder Zeichen. Und deshalb hatte ich sie komplett neu gemacht.
Also denne!
Durch klick auf den Button "Hauptmenü aufrufen" erscheint der Hauptdialog. Fast so wie schon bekannt.
Jedoch ist beim ersten Aufruf der Button "Datei schließen" nicht sichtbar. Logisch! Da ja keine ExD geöffnet ist.
Die Button "Datenerfassung" und "Ausdruck erstellen" funktionieren ja auch ohne eine ExD. Das kann ruhig getestet werden.
Nun kann man ja getrost auf den Button "Datei öffnen" klicken. Dadurch gelangt man zu einer anderen Seite, die die Überschrift "Hier können sie eine Datei öffnen." trägt. Dort dann bitte auf den Button "Datei öffnen" klicken, es erscheint ein Dialog zur Dateiauswahl. Dort sicherheitshalber NUR OO-Dateien auswählen, wie z.B. 'ods' oder 'odt'. Also egal ob Calc- oder Writer-Dateien, das spielt momentan
noch keine Rolle.
Hat man also eine Datei ausgewählt, BITTE NUR auf "Öffnen" klicken. Auf gar keinen Fall auf "Abbrechen" klicken, das führt automatisch zu einer Fehlermeldung die das Makro unterbricht.
Nach dem klick auf "Öffnen" wird sofort die Datei geöffnet. Das ist dann auch unübersehbar, da ich momentan das genau so vorgesehen habe.
Nun wechselt man zu der Hauptdatei mit dem geöffneten Dialog. Dort kann man jetzt lesen, das die ExD geöffnet ist.
Aber gleichzeitig hat der Dialog jetzt auch eine Rote Fußzeile bekommen, die so lange aktiv sichtbar ist, wie der Dialog aktiv ist.
Bitte daran denken!
Den Dialog jetzt nicht Beenden!
Also "zurück zum Menü".
Jetzt sind auch alle 4 Buttons sichtbar, gegenüber vorher nur 3.
Daten erfassen und Ausdruck erstellen können jetzt ruhig noch mal ausprobiert werden. Hat sich nicht sehr viel geändert. Einzig ist die Rote Fußzeile hinzugekommen.
Nun kann man aus dem Hauptmenüe ruhig auf "Datei schließen" klicken. Es kommt dann eine Rückfrage, wo man die ExD schließen kann. Danach gibts eine Rückmeldung, und die Rote Fußzeile verschwindet. Jetzt kann man den Dialog ruhig beenden.
Für die ganz ganz ganz ganz ganz ganz mutigen von Euch.
Macht mal folgendes.
Schaut in das Makro, und zwar in das Modul *Modul_Arbeit*.
Dort sucht ihr die *Sub DateiAuswahl*.
Und dort diese Zeile.
Dort schmeißt ihr das false ' raus, so das nur noch das hier übrig bleibt.
Und nun startet den Dialog erneut.
Öffnet eine Datei.
Und .....
Und ich komme jetzt auch zum ENDE!
Ich geh in die Heia-Popeia.
Gruß
balu