Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Script per Batch o.ä. ausführen

Script per Batch o.ä. ausführen
29.05.2013 12:20:04
Maximilian
Guten Tag!
Kann ich ein bestimmtes Scirpt in einer Excel-Datei direkt über eine Batch Datei oder Ähnliches ausführen?
Wenn ja, wie?
Wunsch ist es, dass das Scirpt ausgeführt wird und danach die Excelmappe wieder schließt.
Danke im Voraus!

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was ist ein Script? (owT)
29.05.2013 12:38:41
EtoPHG

AW: Was ist ein Script? (owT)
29.05.2013 12:49:49
Armin
Hallo,
dazu verwendet man Shell(pathname);
Gruß Armin

AW: Was ist ein Script? (owT)
29.05.2013 13:03:18
Maximilian
Was ein Script ist?... was machst du in diesem Forum? ;) Ein Script ein beispielsweise eine Methode (Sub) in einer Excelmappe....

ahh, ja dann
29.05.2013 13:13:09
EtoPHG
Maximilian,
habe ich ja schon tausende von Scripts geschrieben. Neben VBA auch DOS-Bat(ch), QTP, WMI, SQL, etc...
Aber vielleicht habe ich die falschen Methoden angewendet. Danke für die Aufklärung.
Vielleicht kannst du ja mal ausführen was Zweck und Hintergrund deiner Anfrage etwas ausführen, denn ich kann mir kein sinvolles Bild davon machen.
Gruess Hansueli

Anzeige
weißt du, mit wem du redest?
29.05.2013 13:15:36
Rudi
Hallo,
... was machst du in diesem Forum?
normalerweise antwortet er. Fragen stellt er nur bei unverständlichen Fragestellungen.
(So wie ich auch)
Gruß
Rudi

AW: weißt du, mit wem du redest?
29.05.2013 13:27:50
Maximilian
Was ist an dem Wort "Script" unverständlich? V.a. wenn er schon so viele geschrieben hat?
Was ist daran unverständlich: Kann ich ein bestimmtes Scirpt in einer Excel-Datei direkt über eine Batch Datei oder Ähnliches ausführen?

AW: Script / Batch oder Ähnliches
29.05.2013 13:40:28
EtoPHG
Hallo,
Kann ich ein bestimmtes Scirpt in einer Excel-Datei direkt über eine Batch Datei oder Ähnliches ausführen?
Ja, wenn man's richtig macht! (Ich werd hier noch zum Hajo ;-)
Ansätze: UFP (User Defined Parameter) an Excel/Arbeitsmappe übergeben. Je nach Parameter entsprechende VBA-Prozedur ausführen und dann Mappe schliessen. Mindestens Letzteres sollte bei Level VBA gut kein Problem sein.
Gruess Hansueli

Anzeige
Beispiel kleines VBS Script
29.05.2013 14:52:04
Tino
Hallo,
erstelle eine Textdatei und schreibe diese Codezeilen hinein.
Dim xlsApp
'1. Excel Instanz
Set xlsApp = GetObject(, "Excel.Application")
'Code Test_Beispiel in der Datei ExExcel.xlsm ausführen
xlsApp.Run "ExExcel.xlsm!Test_Beispiel"
Set xlsApp = Nothing
  • ExExcel.xlsm und Test_Beispiel im Code evtl. anpassen

  • ExExcel.xlsm ist die Exceldatei und Test_Beispiel ist der Code (Sub, Function)
    in der Excel den du ausführen willst
  • Datei speichern und schließen.

  • Datei umbenennen, mach aus .txt einfach .vbs (evtl. Meldung bestätigen)

  • Die Exceldatei öffnen (Makros aktiv!) und danach dieses Script ausführen.

  • Gruß Tino

    Anzeige
    AW: Beispiel kleines VBS Script
    29.05.2013 14:53:46
    Maximilian
    Cool, danke für die einfache Antwort! Meine Frage scheint also wohl doch verständlich gewesen zu sein! ;-)

    ...Bis darauf, dass du permanent SCIRPT ...
    29.05.2013 15:07:33
    Luc:-?
    …schreibst, Maximilian,
    wobei sich Etos Tastatur in seiner 1.NachfrageAW offensichtlich sträubte, dies dir nachzutun… ;-)
    Übrigens ist VBS-Script tautologisch, denn VBS heißt ja schon VB-Script! ;-)
    Gruß Luc :-?

    Äh nicht permanent, aber oft ... ;-) owT
    29.05.2013 15:09:38
    Luc:-?
    :-?

    ähmmm, ich hätte da eine Frage
    29.05.2013 16:43:23
    EtoPHG
    Tino,
    Warum muss ich
  • Die Exceldatei öffnen (Makros aktiv!) und danach dieses Script ausführen.

  • Ich dachte das sollte alles über das (VB-)Script laufen?
    Gruess Hansueli

    Anzeige
    etwas aufwändiger
    29.05.2013 17:12:39
    Tino
    Hallo,
    kommt darauf an wie ausfühlich Du den Code aufbaust.
    Da VBS eine Abwandlung von VBA (nicht rein Excel-VBA) ist,
    kann der der Code bei VBA gut leicht angepasst werden.
    Man muss nur daran denken, dass VBS nur den Datentyp Variant kennt.
    Was ich jetzt nicht getestet habe,
    ob der Code (in der Excel) auch immer ausgeführt wird wenn die Datei aus einen
    nicht Vertrauenswürdigen Ort ausgeführt/geöffnet wird.
    Dim xlsApp
    Dim  ws
    Dim sFullPath
    Dim sFileName
    Dim  sCode
    Dim oWB
    'ExcelFile *****************
    sFileName = "Ex Excel.xlsm"
    'Pfad zur Excel anpassen *******************
    sFullPath = "D:\Test\" & sFileName
    ' Code Namen anpassen *******************
    sCode = "'" & sFileName & "'!Test_Beispiel"
    'für evtl. eine Pause einzulegen
    Set ws = CreateObject("Wscript.shell")
    '________________________________________________
    On Error Resume Next
    Set xlsApp = GetObject(, "Excel.Application")
    if Not  xlsApp Is Nothing then
    set oWB = xlsApp.Workbooks(sFileName)
    end if
    if oWB  Is Nothing  then
    if xlsApp Is Nothing Then
    'Excel Instanz
    Set xlsApp = CreateObject("Excel.Application")
    xlsApp.Visible = True
    end if
    set oWB = xlsApp.workbooks.open (sFullPath)
    end if
    '_________________________________________________
    if Not oWB is Nothing then
    'Code in der Excel ausführen
    xlsApp.Run sCode
    'evtl. Pause in ms groß genug bis Code ausgeführt ********************************************
    'kommt auf den Code an (zBsp. bei Verwendung von OnTime), austesten bzw. auch wieder löschen
    WScript.sleep 1000
    'speichern **********************************
    if xlsApp.ActiveWorkbook.ReadOnly = False then
    xlsApp.ActiveWorkbook.Close True
    else
    xlsApp.ActiveWorkbook.Close False
    end if
    if xlsApp.Workbooks.Count = 0 then
    xlsApp.EnableEvents = False
    xlsApp.Quit
    end if
    end if
    '_________________________________________________
    Set oWB = Nothing
    Set ws = Nothing
    Set xlsApp = Nothing
    
    Gruß Tino

    Anzeige
    Och, ich dachte das wäre so einfach...
    29.05.2013 17:34:00
    EtoPHG
    
    wbPath = "N:\Excelstuff\"
    wbName = "Test.xlsm"
    macroName = "Makro1"
    On Error Resume Next
    Set objExcel = CreateObject("Excel.Application")
    If Err  0 Then
    MsgBox Err.Description, _
    vbCritical + vbOKOnly, "EXCEL nicht gefunden!"
    Else
    objExcel.Visible = False
    objExcel.DisplayAlerts = False
    Set objWorkbook = objExcel.Workbooks.Open (wbPath & wbName)
    if Err  0 Then
    MsgBox Err.Description, _
    vbCritical + vbOKOnly, "Open " & wbName
    Else
    objExcel.Run wbName & "!" & macroName
    if Err  0 Then
    MsgBox Err.Description, _
    vbCritical + vbOKOnly, "Run macro " & macroName
    Else
    objWorkbook.Close True
    if Err  0 Then
    MsgBox Err.Description, _
    vbCritical + vbOKOnly, "Close&Save " & wbName
    End If
    End If
    End If
    End If
    objExcel.Quit
    Msgbox "...und Tschüss!"
    
    Gruess Hansueli ;-)

    Anzeige
    kommt darauf an was ablaufen soll...
    29.05.2013 17:47:18
    Tino
    Hallo,
    hast du mal getestet was in nicht Vertrauenswürdigen Speicherort läuft?
    Gruß Tino

    nein, denn ich vertrau meinem Speicher. (owT)
    29.05.2013 17:50:48
    EtoPHG

    ok, habe es auch nicht getestet oT.
    29.05.2013 18:01:57
    Tino

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige