PDA

Vollständige Version anzeigen : VBS befehl - Exel starten und Userform in Vordergrund


jeffreyclaiton
21.09.2016, 11:10
Hallo,

ich habe folgenden code in einem ´VBS- Format gespeichert.
Das funktioniert soweit ganz gut. Jedoch hätte ich gerne, dass die Userform die Über das Makro Start gezeigt wird sich im vordergrund öffnet. (Vor allen offenen Fenstern)

Kann mir ijemand sagen, wie ich das bewerkstelligen kann?
Was muss verändert oder hinzugefügt werden?

VBS_CODE
Option Explicit
Dim xlApp , Pfad
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = false
Pfad = "N:\Workgroup\NCE\05-Team\06-David\David\Coaching Neu\Coachingtool Exel.xlsm"
xlApp.Workbooks.Open Pfad
xlApp.Wait (Now + TimeValue("0:00:05"))
xlApp.Run "start"
xlApp.Visible = True
set xlApp = nothing

MAKRO_CODE
Private Sub Start()

Load NavigationUserForm
NavigationUserForm.Show vbModeless
End Sub


Ich bin über jede Hilfe Dankbar.

LG David

Benutzername:
22.09.2016, 08:30
Moin David,

Ohne Hintergrundwissen bezüglich deines Anwendungsfalles, aber ist das Nutzen der VBS tatsächlich nötig?

Kannst Du die Funktionalität aus der Sub Start nicht einfach in die Sub Workbook_Open stecken. Diese wird ja automatisch nach Öffnen des Workbooks ausgeführt und Du sparst Dir auch die Timergeschichte (falls das der Grund für Deine VBS sein sollte?). Anschliessend verlinkst Du einfach die Exceldatei direkt.

Das Verschieben des Excelfensters in den Vordergrund über VBA/VBS scheint nach kurzem Suchen im Inet zuverlässig nur über die Nutzung von APIs möglich zu sein und sowas würde ich persönlich lieber vermeiden wollen.

Gruss,
Stephan

jeffreyclaiton
22.09.2016, 13:59
Danke für die Antwort.
Ich weiß noch nicht wie ich es lösen werde. Aber besten Dank

_anton_
22.09.2016, 17:30
Hallo David,

man kann alle geöffnete Fenster minimieren und dann deine Datei starten.Etwa so:
Option Explicit
Dim xlApp, Pfad
dim objShell
set objShell = CreateObject("shell.application")
objShell.MinimizeAll
set objShell = nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
wscript.sleep 5000 '5 sec warten
Pfad = "N:\Workgroup\NCE\05-Team\06-David\David\Coaching Neu\Coachingtool Exel.xlsm"
xlApp.Workbooks.Open Pfad
xlApp.Run "start"
xlApp.Visible = True
Set xlApp = Nothing
mfg Anton