2.6k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von strauss Experte (4k Punkte)
Hallo an alle.

Ausgangssituation:
Es existiert eine Excel Arbeitsmappe (z.B Max Mustermann.xls) in die Betreuungszeiten für Tagesmütter eingetragen werden sollen.
Ich hab dieses Arbeitsblatt eigentlich mal für meine Frau erstellt. Jetzt sollte diese Datei auch anderen Tagesmüttern in unserer Samtgemeinde zur Verfügung gestellt werden.

Damit ich nicht jedem Anwender einzeln einige Hinweise dazu erzählen muss (z.B wie das Format der einzutragenden Zeiten) wollte ich jetzt das ganze etwas automatisieren.

Ich hab mir das in etwa so vorgestellt :
Die Tagesmutter bekommt die Datei in einem Ordner, in dem dann auch eine Textdatei mit den Hinweisen ist.
Der Aufruf der Exceldatei soll über eine Batchdatei erfolgen, die aber vorher erst die Textdatei auf den Bildschirm holt. Erst wenn diese geschlossen wird soll dann die Exceldatei aufgerufen werden.

Ich hatte zwar schon in die Exceldatei den Aufruf einer Hinweisbox integriert, die aber nur bei mittlerer Makrosicherheit funzt (b.z.w muss das Makro erst bestätigt werden, was bei manchen schon Spepsis auslöst).

Ist das ganze mit einer Batchdatei überhaupt lösbar ??
Oder gibt es noch andere Lösungsvorschläge dazu ?

Auf jeden fall sollten zuerst die Hinweise gelesen werden, bevor die Arbeitsmappe bearbeitet werden kann !

Mfg Micha

6 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Micha,

ich persönlich würde das mit eine Exe-Datei, die ich in Visual Basic erstellen würde, lösen. Diese Exe-Anwendung würde mir die Exceldatei immer mit aktivierten Makros öffnen und in der Exceldatei könnte sich dann die Bildschirmmeldung befinden.

Da Du sicherlich kein Visual Basic hast, könnte das mit einer, wie von Dir bereits vorgeschlagenen, Batchdatei erledigt werden. Nachfolgend mal die Befehlszeilen der Batchdatei:

@echo off

set TextDateiname=Deine Textdatei.txt
set ExcelDateiname=Deine Exceldatei.xls

rem Aufruf der Textdatei. Hier kein "start" vor den
rem String schreiben, damit Batchdatei erst
rem weiter abgearbeitet wird, wenn Textdatei
rem geschlossen wird
rem
%CD%%TextDateiname%

rem Aufruf der Exceldatei. Hier mit der Anweisung "start",
rem damit nach dem Öffnen der Exceldatei das Dos-Fenster
rem automatisch schließt.
rem
start %CD%%ExcelDateiname%
Du musst in dem Script der Batchdatei in den Zeilen

set TextDateiname=Deine Textdatei.txt
set ExcelDateiname=Deine Exceldatei.xls

die Namen der Dateien, die geöffnet werden sollen, noch anpassen.
Bedingung bei der Batchdatei ist, dass sich die Batchdatei, die Textdatei und die Exceldatei in einem Verzeichnis befinden, da obiger Code ansonsten nicht funktioniert.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Geht das nicht sehr viel kürzer?

@echo off
start /wait "" "Hinweismeldung Textdatei.txt"
"Arbeitsmappe Exceldatei.xls"
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo son_quatsch,

das geht auch. DOS ist halt nicht so mein Steckenpferd. Dann doch lieber VB oder VBA.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Danke erstmal für die Antworten. Ich werde mir das mal zu Gemüte führen.

Ein kleines Problem gibt es bei der ganzen Geschichte aber noch. Ich hatte das vergessen zu erwähnen.

Die Exceldatei bekommt aber bei jeden, der diese dann nutzen möchte einen anderen Namen. (z.B statt Max Mustermann.xls >> Fritz Müller.xls)
Das hat den Hintergrund, das dieser Name der Datei in eine gewisse Zelle übernommen wird, damit nicht jeder erst für jeden Monat den Namen des zu betreuenden Kindes reinschreiben muss.

Kann man in der Batchdatei auch Platzhalter verwenden ??

Im Sinne von:
@echo off
start /wait "" "Hinweismeldung Textdatei.txt"
"*.xls"


Mfg Micha
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Indirekt. Das folgende Skript öffnet die Textdatei und wartet, bis der damit assoziierte Editor geschlossen wurde. Anschließend werden alle Excel-Dateien des Ordners geöffnet.

@echo off
start /wait "" "Hinweismeldung Textdatei.txt"
for %%f in (*.xls) do start "" "%%f"
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Ist zwar schon ne Weile her, aber hier noch die Rückmeldung:

Antwort 5 ist das was ich gesucht hatte !

Danke

Mfg Micha
...