Excel in den Vordergrund
10.02.2020 07:51:03
Thomas
ich erstelle mit dem untenstehenden Skript einen neue Excel Instanz.
In dieser starte ich meine Arbeitsmappe, wobei dann gleich meine Userform startet. Der Anwender sieht nur die gestartete Userform, nicht das startende Excel.
Nun habe ich das Problem das sich diese Mappe ( Userform ) immer hinter dem Explorer versteckt.
objExcel.Activate funktioniert leider auch nicht.
Hat jemand ein Tipp für mich wie ich diese Instanz in den Vordergrund bekomme?
dim objExcel
intTimeout = 3 'Number of seconds to wait
strMessage = " Ok ich öffne die Datei"
strTitle = "Ich starte"
Set WshShell = CreateObject("WScript.Shell")
intResult = WshShell.Popup(strMessage, intTimeout, strTitle)
'##########################################################################
'MsgBox " Ok ich starte bitte warten "
set objExcel= createobject("Excel.Application")
'objExcel.xlMaximized
objExcel.Application.IgnoreRemoteRequests = False
With objExcel
.ScreenUpdating = True 'False
.DisplayAlerts = True
'.EnableEvents = True
.visible = false 'true
'
.Workbooks.Open "\\rc-de-de1\Ftest.xlsb", 0, True
.visible = false
End With
'MsgBox " Ok bin fertig die Datei ist offen. Viel Spass "
Set WshShell = Nothing
Set objShell = Nothing
Set objExcel = Nothing
----------------------------------------------------
Mit diesem Skript erscheint meine Userform zwar in den Vordergrund:
'Set Shell = CreateObject("WScript.Shell")
' http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_pkoy.mspx?mfr=true
' Library IWshRuntimeLibrary C:\WINDOWS\System32\wshom.ocx Windows Script Host
' Object Mode
Const vbHide = 0
Const vbMaximizedFocus = 3
Const vbMinimizedFocus = 2
Const vbMinimizedNoFocus = 6
Const vbNormalFocus = 1
Const vbNormalNoFocus = 4
Const vbWait = TRUE
Const vbContinue = False
Set WshShell = CreateObject("WScript.Shell")
'With WshShell
'.ScreenUpdating = False
'.DisplayAlerts = false
'.EnableEvents = false
'.visible = false 'true
'End With
WshShell.run "excel.exe ""\\rc-de-de1\Ftest.xlsb""", vbNormalFocus , vbContinue
Aber leider bekomme ich bei diesem Teil des Scripts:
'With WshShell
'.ScreenUpdating = False
'.DisplayAlerts = false
'.EnableEvents = false
'.visible = false 'true
'End With
eine Fehlermeldung.
So das ich immer erst das Excel Fenster sehe und anschließend die Meldung das Excel schreibgeschützt gestartet wird , bekomme.
Ich möchte aber gern das der Anwender nur das Ergebnis, eine gestartete Userform im Vordergrund sieht.
Kann mir jemand ein Tipp geben wie ich dieses Dilemma lösen kann?
Habt schon mal recht vielen dank für euer Interesse.
mfg thomas