Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Excel wird mit /Parameter geöffnet-Parameter in Zelle einfügen
#1
Hallo zusammen,

ich habe eine etwas speziellere Frage, und zwar wird meine Excel Datei mit unterschiedlichen Parametern geöffnet, zum Beispiel .../4533

Dieser Parameter soll beim Öffnen des Dokuments durch die COMMAND Eigenschaft in VBA in eine Zelle kopiert werden.

Grundsätzlich habe ich schon ein Stück Code im Internet gefunden und angepasst, aber es funktioniert nicht so recht:

Zitat:Private Sub Workbook_Open()
Dim CmdRaw As Long
Dim CmdLine As String

CmdRaw = GetCommandLine
CmdLine = CmdToSTr(CmdRaw)

CmdLine = Sheets("Projekt-Status").[D4]


End Sub

Zitat:'Option Base 1
'Declare Function GetCommandLineA Lib "kernel32" () As String

Ich weiss, dass es schon stark in Richtung programmieren geht, und ich selbst bin an dieser Stelle überfordert. An sich dürfte es aber auch nicht so schwer sein.

Bin für jeden Tip / Hilfe dankbar
to top
#2
Hallo holg,

da hat Dir Deine Quelle nicht alles verraten. Der code aus Deinem ersten Zitat kommt in Deiner Exceldatei in das Modul "DieseArbeitsmappe".

Der code hier kommt in ein "normales" Modul:

Code:
Option Explicit

Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long
Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long)

Function CmdToSTr(Cmd As Long) As String
Dim Buffer() As Byte
Dim StrLen As Long

If Cmd Then
StrLen = lstrlenW(Cmd) * 2
If StrLen Then
ReDim Buffer(0 To (StrLen - 1)) As Byte
CopyMemory Buffer(0), ByVal Cmd, StrLen
CmdToSTr = Buffer
End If
End If
End Function
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#3
Hallo André,

vielen Dank für die Hilfe, noch tritt leider nicht der gewünschte Effekt ein. Irgendwas scheint noch nicht zu stimmen. Der Parameter wird noch nicht in die Zelle eingefügt.
to top
#4
Hallo holg,

im ersten codeteil musst Du noch die Zuweisung rumdrehen. Vor dem = steht in der Regel das Ziel und nach dem = die Quelle.

Also nicht
Code:
CmdLine = Sheets("Projekt-Status").[D4]
sondern
Code:
Sheets("Projekt-Status").[D4] = CmdLine
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#5
Super, danke!

Es wird nun etwas eingetragen, aber leider nicht der Parameter, sondern
Zitat:"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" /dde

Das wird auch eingetragen, wenn ich die Datei ohne Parameter öffne!

Viele Grüße

Holger
to top
#6
Hallo Holger,

Phillip hat das hier schön erklärt.

Gruß Uwe
[-] Folgende(r) 1 Benutzer sagt Danke an Kuwer für diesen Beitrag:
holg620
to top
#7
Danke für den Link, ich habe mir das durchgelesen und so umgesetzt und statt

MsgBox "Es wurde die Zeichenfolge '" & strCommandLine & "' übergeben."

eben

Sheets("Projekt-Status").[D4] = strCommandLine

eingefügt.

Es tritt aber immer die Else-Bedingung in Kraft

"Es wurde keine Zeichenfolge übergeben"

Wenn ich es ohne diese Bedingung aufbaue, wird eben der Excel-Pfad eingetragen.


Grüße,

Holger
to top
#8
Hallo Holger,

es geht da ja auch darum, das es nur mit Startparameter /e funktioniert.

Gruß Uwe
to top
#9
Ah, ich komme der Sache näher...dennoch funktioniert es auch mit ....xlsm /e/4533 noch nicht.
4533 benutze ich testweise, später soll der Paramter dynamisch mithilfe von [P] durch eine Software übergeben werden.
Aber im Moment klappt auch der Test noch nicht
to top
#10
Hallo Holger,
Da wird das komplette Kommando eingetragen. Wenn der Teil mit Excel stört, kann man den im VBA abtrennen. Je nachdem, was da alles vorkommen kann könnte man den vorderen Teil mit replace durch nichts ersetzen oder man trennt den String nach EXE ab oder ...
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Excel VBA, Bild aus nebenstehender Zelle kopieren wenn Zelle ausgewählt ist xChristianx 5 74 30.11.2016, 11:32
Letzter Beitrag: xChristianx
  Sub in Prozedur öffnen und Parameter überprüfen briansen93 3 66 08.11.2016, 19:21
Letzter Beitrag: schauan
  Zelle wird nicht eingefärbt trotz bedingter Formatierung rincewind 6 115 03.11.2016, 16:33
Letzter Beitrag: Käpt'n Blaubär
  Excel soll etwas rechnen wenn was bestimmtes eingegeben wird SvenjaSch 6 102 27.10.2016, 12:28
Letzter Beitrag: SvenjaSch
  mehrere pdfs in excel einfügen lola 2 141 05.10.2016, 12:27
Letzter Beitrag: lola
Question Bild in Excel einfügen das sich bei anklicken vergrößert CherryX 2 136 22.09.2016, 14:12
Letzter Beitrag: snb
  Makro: Dynamische Formel in Zelle einfügen chrjh 8 266 22.09.2016, 14:09
Letzter Beitrag: chrjh
  Excel Verweis nur wenn Datei geöffnet? chrjh 6 290 10.09.2016, 19:18
Letzter Beitrag: IchBinIch
  Zahl finden und andere Zelle einfügen Koncti 13 486 09.09.2016, 10:14
Letzter Beitrag: Koncti
  Zelle mit Zellenbezug wird über Suche nicht gefunden Claudia68 3 136 09.09.2016, 07:15
Letzter Beitrag: Claudia68

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste