Ausführung Makro auf Server

Hallo zusammen.

Ich hoffe, es ist nicht weiter schlimm, dass ich mal eine grundsätzliche Frage stelle ohne einen Code zu wünschen. Folgende Situation:

Wir haben eine EXCEL-Datei, die wir über eine Task nachts auf unserem Server aufrufen. Wenn die Datei gestartet wird, beginnt automatisch ein Makro. Der ganze Task-Prozess funktioniert einwandfrei, wie wir inzwischen herausfiltern konnten.

Nun das Problem: Das Makro selbst wird nicht fehlerfrei ausgeführt. Das komische daran ist, dass wir das Makro ohne Fehler ausführen können, wenn wir auf dem Server angemeldet sind und eine Verbindung zum Server an einer Workstation besteht. Sobald wir keine Verbindung über eine Workstation zum Server haben (und trotzdem einen user angemeldet haben --> hier der Admin), haben wir einen bisher noch nicht identifizierten Fehler. Das wollen wir in den nächsten Tagen mal probieren.

Deshalb meine Frage: Kennt jemand Befehle, die nur ausgeführt werden können, wenn es eine aktive Verbindung zum Server bzw. zum ausführenden System gibt? Ich denke da spontan an Applications, die mit dem Bildschirm zu tun haben, wie z.B. ScreenUpdatin=False.

Grüße, Aiko.

Hallo Aiko,

Hast Du Daten (Link) die auf eine Workstation verweissen?

Gruß Fred

Hallo Fred.

Die Links habe ich an die Serverbezeichnung angepasst - war der erste Fehler, der aber schnell auffiel.

Ich habe inzwischen die einzelnen Makros ausprobiert. Bis auf ein Makro gibt es keine Probleme und ich konnte die Auswertung auch schon realisieren.

Das große Problem tritt auf, wenn ich über sendkeys und der ftp.exe passwortgeschützte Daten herunterladen möchte. Irgendwie werden die Eingabe nicht an die ftp.exe übergeben. Erst wenn man sich dann über über einen PC mit dem Server in Verbindung setzt, werden die Daten in der ftp.exe eingetragen und alles ausgeführt. Da zwischenzeitlich jedoch das Makro weitergelaufen ist, kommt es zu einem Absturz von Excel. Leider habe ich keine Ahnung, wie ich da genaueres herausfiltern kann und wie ich das beseitigen kann.

Wir haben das Herunterladen der Daten abgekoppelt und jetzt läuft unsere Auswertung - zwar nicht optimal, aber geht schon.

Grüße, Aiko.

Hallo Aiko.

Hab’s auf mein ftp Server probiert.

Sub Datei()
sLog = „D:\test.txt“
Shell „ftp -s:“ & sLog, vbNormalFocus
End Sub

in der Test.txt steht

open 10.0.0.1
test
test,121
type binary
lcd D:\
cd /pub/support/products/NAI/
prompt
mget datei.exe
quit

erklärung der Test.txt
open = ip_addresse (10.0.0.1) oder rechner_name (Server)
test = login_username
test,121 = login_passwort
type binary = stellt den dateiübertragungsmodus
lcd D:\ = wechselt das arbeitsverzeichnis auf dem lokalen rechner
cd /pub/support/products/NAI/ = wechselt zu einem anderen arbeitsverzeichnis auf dem Remoterechner.
prompt
mget datei.exe = kopiert remotedateien unter verwendung des aktuellen dateiübertragungsmodus auf einen lokalen rechner
quit = beendet die FTP-sitzung

Hallo Fred.

So steht es im Grunde auch im Makro. Du meinst also, dass der Fehler nicht auftritt, wenn ich es über eine soche txt-Datei mache? Okay, kann ich auch mal versuchen. Was ist denn der Unterschied, zwischen SendKeys und einer txt-Datei als Basis?

Grüße, Aiko.

Hallo,

Bei mir sind Sendkeys Tastatur belegungen wie z.B.: in excel
alt + F11 zum öffen des VB Editors.

Oder was sind Sendkeys deiner meinung, nach?

Gruß fred

Hallo Fred.

Dein Beispiel kenne ich unter den Stichwort shortcut. ich meine mit SendKeys den Makro-Befehl zum versenden von Tastatureingaben.

Grüße, Aiko.

Hallo Aiko.

Dein Beispiel kenne ich unter den Stichwort shortcut. ich
meine mit SendKeys den Makro-Befehl zum versenden von
Tastatureingaben.

gib mahl unter google
vba sendkeys
ein und ließ dir die suchergebnisse durch

Grüße, Fred.

Hallo Aiko,

sende mir dein code, ich sehe mir an wenn ich zeit habe.
komme leider nicht vor sonntag dazu!!

gruß fred

Hallo Fred.

Zu SendKeys:
Hier meinen wir grundsätzlich schon das gleiche, ich kenne für die Tastenkürzel innerhalb eines Windowsprogrammes oder auch andere Programme eben die Bezeichnung shortcut. Aber sind ja nur Bezeichnungen.

Zu meinem Code:
Hier habe ich nicht das Problem, dass es nicht funktioniert - es funktioniert nur eben nicht immer. Am liebsten wäre es uns, wenn das Makro auf unserem Server laufen würde, wenn niemand auf dem Server angemeldet ist. Es gibt drei Möglichkeiten:

  1. Situation: Benutzer auf Server angemeldet mitTerminalsitzung
  2. Situation: Benutzer auf Server angemeldet ohne Terminalsitzung
  3. Situation: kein Benutzer angemeldet

Im Falle von 1 wird das Makro ohne Probleme ausgeführt.
Im Falle von 2 wird das Makro gestartet, aber nicht zu Ende ausgeführt. Öffnet man nach dem Start des Makros eine Terminalsitzung so kann man kurz nach Aufbau der Darstellung erkennen, wie Daten in die ftp.exe eingetragen werden und kurze Zeit später gibt es einen Absturz von EXCEl bzw. man bekommt das Pop-Up „Fehlerbericht senden“. Wir haben herausgefunden, dass erst ungefähr die zweite Hälfte der Befehle an das ftp.exe übergeben werden.
Im Falle von 3 funktioniert auch nichts, wir gehen aber davon aus, dass es der gleiche Fehler wie bei Situation 2 ist.

Grüße, Aiko.