Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Parameter beim Aufruf von Excel

Parameter beim Aufruf von Excel
19.08.2005 09:30:04
Excel
Hallo zusammen,
ist es möglich beim Aufruf vom Excel einen Parameter mitzugeben, den ich dann durch VBA auswerten kann.
z.B. test.xls hallo
dann könnte ich in dem Workbook_Open abfragen, wenn hallo dann dies, sonst jenes.
Danke für euer Hilfe
Steffen
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Parameter beim Aufruf von Excel
19.08.2005 09:46:21
Excel
Hi,
nein, das geht nicht. Erklär mal was du vor hast, eventuell gibt es ja eine andere Lösung.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Parameter beim Aufruf von Excel
19.08.2005 09:52:55
Excel
Ich rufe aus einem anderem Programm ein Exceldatei auf. Diese Exceldatei liest einiges aus einer Datenbank aus. Um die richtigen Sachen auszulesen bräuchte ich einen Parameter, da ja verschiedene Sachen ausgelesen werden sollen. Jenachdem an welcher Stelle des Programms Excel ausgerufen wurde.
Dann muss ich es wohl doch mit einer Ini-Datei machen und die benötigten Parameter vorher dort von dem anderen Programm hineinschreiben lassen.
Gruß
Steffen
Anzeige
AW: Parameter beim Aufruf von Excel
19.08.2005 10:02:29
Excel
Hi,
an so etwas änliches hatte ich auch gedacht.
Gruß
Nepumuk
AW: Parameter beim Aufruf von Excel
19.08.2005 10:01:18
Excel
Hallo Nepumuk,
bei Meister Schwimmer ist da was vorgestellt, funzte aber bei mir nicht. Das geht also generell nicht? Gut zu wissen.
Gruss- Micha
Ja, es geht!
19.08.2005 12:14:14
GerdZ
Hallo Steffen,
es gibt eine Möglichkeit fast beliebig viele Parameter beim Starten von Excel mitzugeben und diese in Workbook_Open oder Auto_Open auszuwerten.
Einzige Begrenzungen sind: die Länge der Befehlszeile, es dürfen keine Leerstellen in den Parametern enthalten sein und die Übergabe erfolgt als String.
Die Parameter werden mit / getrennt über den /e-Schalter übergeben.
Du startest Excel mit folgender Zeile:
"C:\Programme\Microsoft Office\Office\EXCEL.EXE" /e/Para1/Para2 "C:\Daten\Datei.xls"
Wichtig ist die Reihenfolge: die Parameter mit /e vor der zu öffnenden Datei. Mit folgender Auto_Open in Datei.xls werden die Parameter angezeigt:
Option Explicit
Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String
Sub Auto_open()
Dim CmdLine As String 'command-line string
Dim Args() As String 'array for storing the parameters
Dim ArgCount As Integer 'number of parameters
Dim Pos1 As Integer, Pos2 As Integer
CmdLine = GetCommandLine() 'get the cmd-line string
CmdLine = Left$(CmdLine, InStr(CmdLine & vbNullChar, vbNullChar) - 1)
On Error Resume Next 'for the wksht-function "Search"
Pos1 = WorksheetFunction.Search("/", CmdLine, 1) + 1 'search "/e"
Pos1 = WorksheetFunction.Search("/", CmdLine, Pos1) + 1 '1st param
If InStr(Pos1, CmdLine, " ") > 0 Then CmdLine = Left$(CmdLine, InStr(Pos1, CmdLine, " "))
Do While Err = 0
Pos2 = WorksheetFunction.Search("/", CmdLine, Pos1)
ArgCount = ArgCount + 1
ReDim Preserve Args(ArgCount)
Args(ArgCount) = Mid(CmdLine, Pos1, _
IIf(Err, Len(CmdLine), Pos2) - Pos1)
MsgBox "Argument " & ArgCount & " : " & Args(ArgCount)
Pos1 = Pos2 + 1
Loop
End Sub
Gruß
Gerd
Anzeige
AW: Ja, es geht!
19.08.2005 13:10:30
Steffen
Hallo Gerd,
Ja, es geht wirklich und ist genau das was ich gesucht habe.
Vielen Dank
Gruß Steffen
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel mit Parameter starten: Eine Anleitung


Schritt-für-Schritt-Anleitung

Um Excel mit einem Parameter zu starten, kannst Du folgende Schritte befolgen:

  1. Erstelle eine Verknüpfung zu Excel (z. B. EXCEL.EXE).
  2. Füge den Startparameter hinzu: In der Zielzeile der Verknüpfung, füge /e gefolgt von Deinen Parametern hinzu. Zum Beispiel:
    "C:\Programme\Microsoft Office\Office\EXCEL.EXE" /e/Para1/Para2 "C:\Daten\Datei.xls"
  3. Öffne die gewünschte Excel-Datei: Stelle sicher, dass die Datei, die Du öffnest, die VBA-Funktion enthält, die die Parameter verarbeiten wird.
  4. Implementiere die VBA-Funktion in der Datei, um die übergebenen Parameter auszulesen (siehe praktisches Beispiel).

Häufige Fehler und Lösungen

  • Fehler: Parameter werden nicht erkannt.

    • Lösung: Überprüfe, ob die Parameter korrekt mit / getrennt sind und keine Leerzeichen enthalten.
  • Fehler: Excel startet nicht oder öffnet die falsche Datei.

    • Lösung: Stelle sicher, dass der Pfad zur Excel-Datei korrekt ist und die Datei existiert.

Alternative Methoden

Falls die Übergabe von Parametern direkt beim Start nicht funktioniert, kannst Du folgende Alternativen ausprobieren:

  • INI-Datei nutzen: Schreibe die benötigten Parameter in eine INI-Datei, die von der geöffneten Excel-Datei ausgelesen werden kann.
  • Excel VBA Parameter übergeben: Verwende eine Excel-Funktion, die beim Öffnen der Datei die Werte aus einer Zelle oder einem Bereich ausliest.

Praktische Beispiele

Hier ist ein Beispiel, wie Du die Parameter in VBA auslesen kannst:

Option Explicit
Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String

Sub Auto_Open()
    Dim CmdLine As String 'command-line string
    Dim Args() As String 'array for storing the parameters
    Dim ArgCount As Integer 'number of parameters
    Dim Pos1 As Integer, Pos2 As Integer

    CmdLine = GetCommandLine() 'get the cmd-line string
    CmdLine = Left$(CmdLine, InStr(CmdLine & vbNullChar, vbNullChar) - 1)

    On Error Resume Next 'for the wksht-function "Search"
    Pos1 = WorksheetFunction.Search("/", CmdLine, 1) + 1 'search "/e"
    Pos1 = WorksheetFunction.Search("/", CmdLine, Pos1) + 1 '1st param

    Do While Err = 0
        Pos2 = WorksheetFunction.Search("/", CmdLine, Pos1)
        ArgCount = ArgCount + 1
        ReDim Preserve Args(ArgCount)
        Args(ArgCount) = Mid(CmdLine, Pos1, IIf(Err, Len(CmdLine), Pos2) - Pos1)
        MsgBox "Argument " & ArgCount & " : " & Args(ArgCount)
        Pos1 = Pos2 + 1
    Loop
End Sub

In diesem Beispiel wird die Funktion GetCommandLine verwendet, um die übergebenen Parameter auszulesen und in einer MessageBox anzuzeigen.


Tipps für Profis

  • Vermeide Leerzeichen in den Parametern, da dies zu Problemen führen kann.
  • Teste Deine Parameter zuerst in einer Entwicklungsumgebung, bevor Du sie in einer produktiven Umgebung verwendest.
  • Nutze Debugging: Setze Breakpoints in Deinem VBA-Code, um den Fluss und die Übergabe der Parameter zu überprüfen.

FAQ: Häufige Fragen

1. Kann ich mehrere Parameter gleichzeitig übergeben?
Ja, Du kannst beliebig viele Parameter über / getrennt übergeben, solange die Gesamtlänge der Befehlszeile nicht überschritten wird.

2. Wie kann ich die Parameter in einer Funktion verwenden?
Du kannst die übergebenen Parameter in einer VBA-Funktion verwenden, indem Du sie in einem Array speicherst und danach darauf zugreifst.

3. Was passiert, wenn ich einen ungültigen Parameter übergebe?
Wenn ein ungültiger Parameter übergeben wird, kann dies zu Fehlern in Deinem VBA-Code führen. Stelle sicher, dass alle Parameter validiert werden, bevor Du sie verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige