Aus Excel heraus eine Batch Datei ausführen

olitheis

Level-1
Beiträge
488
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte aus Excel (2003) heraus eine Batch Datei ausführen.
Und zwar soll eine Zelle "überwacht" werden, und wenn der Inhalt/Wert der Zelle "1" ist, soll beispielsweise die Batch Datei test.bat ausgeführt werden.
Wie könnte man das am sinnvollsten realisieren?

Vielen Dank
Oli
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo vierlagig,
danke für die schnelle Antwort.
Aber könntest Du mit evtl. für meine Anwndung ein Beispiel dazu geben? Leider bin ich mit VB nicht so fit :confused:.
Wo müsste der Code hin und wie genau sieht er aus, damit z.B. die Zelle A1 auf den Wert "1" überwacht wird und entsprchend die test.bat ausgeführt würde.

Vielen Dank
Oli
 
alt+F11
Diese Arbeitsmappe (links im baum)

code

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim x As Double
    If Sheets(1).Range("A1").Value = 1 Then
    x = Shell("c:\Temp\test.bat", vbMaximizedFocus)
    End If
End Sub

einfügen

speichern

im tabellenblatt 1 die zelle a1 editieren, mit enter bestätigen
fertig.
 
Hallo vierlagig,
das funktioniert schonmal prima!

Ich habe da jetzt aber noch ein Problem. Und zwar wird die Sache komplexer als ich dachte:
Ich habe eine Logdatei (vom Accon S7EasyLog) im csv-Format (Semikolon-getrennt). Diese Datei beinhaltet u. A. Uhrzeit, Datum, 24 Variablen und eben diese eine Variable, die das Ausführen der Batch Datei auslösen soll. In der angehängten Beispieldatei wäre das Spalte AA.
In diese csv Datei wird zyklisch vom EasyLog nachgeschoben.
(ich glaube aber, dass die csv Datei dabei nicht geöffnet sein darf!)

Jetzt kommt der Haken: Die Spalte AA müsste jetzt überwacht werden und wenn der Wert in der akutellsten Zelle "1" wird müsste die Batch Datei ausgeführt werden.
D.h., dass die csv Datei ggf. in eine Excel Tabelle eingelesen werden müsste und die entsprechende Zelle auf die die Änderung überwacht werden.
Die ganze Sache läuft nicht zeitkritisch ab. Also könnte z.B. die CSV Datei alle 5min. in die Tabelle neu eingelesen werden (oder alternativ, wenn die csv Datei eine neue Zeile bekommt).
Der S7EasyLog bietet ja die Möglichkeit, täglich, wöchentlich, monatllich usw. neue Dateien mit entsprechenden Namen anzulegen. So würde die Sache etwas übersichtlicher und ein Überlauf würde verhindert Ich weiß aber nicht, ob sich dass mit dem autom. Einlesen dann immer noch vereinbaren lässt.
Das wäre jetzt der Ansatz, den ich hätte, vielleicht kann man das auch anders/einfacher realisieren, evtl. sogar nur die csv Datei überwachen(?) um die Batch Datei auszuführen.
Das mit dem Import in eine Tabelle wäre da schon Vorteilhaft, wenn man sich die Daten zwecks Prod. Überwachung anschauen möchte.
Könnte aber auch getrennt voneinander ablaufen.

Nochmals vielen Dank
Oli
 
Zuletzt bearbeitet:
es geht also um den email versand und um die aufzeichnung von daten...
ich empfehle eine lösung mit SQL und .net, excel müßte ja sonst immer irgendwie im hintergrund laufen, das macht sich mit einem dienst schöner...
 
Hallo,
ja, es soll bei Bedarf eine e-mail abgesetzt werden.
Aber mit SQL und .net bin ich total überfordert, sei denn Du hättest hier eine Lösung parat.
Wenn wir es mit Excel hinbekämen, wäre das schon einmal ein Anfang. Der PC, wo die Loggersoftware läuft, muss sowieso die ganze Zeit laufen. Es wäre also nicht tragisch, wenn auch noch Excel im Hintergrund laufen würde.
Danke
Oli
 
Ich verwende "Postie" von infrading:
http://www.infradig.com/.
Send email or receive email from the command line (Postie)
Mit der Batch Datei rufe ich postie auf. In der Batch Datei stehen alle Infos, wie z.B. smtp, Absender, Empfänger, Betreff, Meldung usw... funktioniert prima. Ich habe es auch getestet mit Deinem Code.

@Aventinus
auf der Anlage läuft MoviconX (leider)

Danke
Oli
 
Ich verwende "Postie" von infrading:
http://www.infradig.com/.

Mit der Batch Datei rufe ich postie auf. In der Batch Datei stehen alle Infos, wie z.B. smtp, Absender, Empfänger, Betreff, Meldung usw... funktioniert prima. Ich habe es auch getestet mit Deinem Code.

@Aventinus
auf der Anlage läuft MoviconX (leider)

Danke
Oli

Ein Klasse Tipp! Das werde ich direkt mal testen!
 
Zurück
Oben