Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
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
Datei aus UserForm in neuer Instanz öffnen
06.02.2020 09:11:14
Dante
Guten Morgen Forum!
Ich hatte vor ein paar Tagen ein anliegen bei dem mir Torsten sehr gut weiterhelfen konnte (siehe unten).
Ich habe eine Excel welche ich über ein VBScript öffne um parallel mit anderen Excel-Dateien arbeiten kann.
Sprich wenn ich meine Excel mit der UF über die vbs öffne kann ich durch direkten Doppelklick auf eine andere Excel diese in einer neuen Instanz öffnen und bearbeiten. Hervorragend! An dieser Stelle nochmal ein großes Dankeschön an Torsten.
Nun möchte ich aus der UF eine andere Excel öffnen und bearbeiten. Diese wird aber erst dann angezeigt wenn ich die UF schließe, also wir es wohl in der selben Instanz geöffnet wie die UF.
Die andere Excel öffne ich über einen CommandButton mit
Private Sub CommandButton_externe_oeffnen_Click()
Workbooks.Open Filename:="Pfad\externe.xlsm"
End Sub
Meine Frage ist nun:
Um was muss ich den Code ergänzen damit mir externe.xlsm in einer neuen Instanz geöffnet wird?
Oder muss ich das VBScript verändern?
Gruß
Dante
Von Torsten:
hatte ein aehnliches Problem und habe es so geloest:
Versuch mal folgendes, wenn es dich nicht stoert, die Datei ueber einen anderen Weg zu oeffnen:
Offne ein neues Textdokument im Texteditor von Windows. Schreibe dort den folgenden Code rein:
Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open "DeinPfad\DeineDate.xlsm"
xlApp.Visible = False
Set xlApp = Nothing
Dann speicher die Datei unter einem neuen Namen, am besten mit dem Namen deiner xlsm Datei. Dann benennst du die Datei um, aber nur die Dateiendung. Diese aendern von .txt zu .vbs
Weiterhin habe ich dann im Workbook_Open das hier stehen:
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = False
With ActiveWindow
.DisplayHeadings = False
.DisplayWorkbookTabs = True
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.WindowState = xlMinimized
UserForm1.Show
Du musst die Datei dann ueber die neu erstellte .vbs Datei oeffnen. Es sollte nur die Userform erscheinen und wenn du eine andere Excel Datei oeffnest, musst du diese minimieren, damit du wieder die Userform bekommst.
Gruss Torsten

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

Betreff
Datum
Anwender
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
06.02.2020 09:20:24
Nepumuk
Hallo Dante,
ein Beispiel:
Private Sub CommandButton1_Click()
Dim objExcel As Application
Set objExcel = CreateObject(Class:="Excel.Application")
With objExcel
Call .Workbooks.Open(Filename:="H:\Documents\Excel\Test\Foren\Mappe1.xlsm")
.Visible = True
End With
Set objExcel = Nothing
End Sub

Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
06.02.2020 09:36:22
Dante
Moin Nepumuk!
Einsame spitze! Funktioniert auf den ersten Blick und Test perfekt!
Danke Dir vielmals!
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 08:32:23
Dante
Guten Morgen zusammen,
zu dem o.g. Code mit dem man die UserForm mittels vbs/exe öffnet, hätte ich nun gerne noch das die UF in irgendeiner Art und Weise in der Taskleiste angezeigt wird.
Zu dem Thema habe ich zwar einiges finden können, aber nicht wirklich etwas was ich dann hin bekommen hätte.
Der Code oben von Torsten ist noch identisch, der Code im TextEditor der dann als vbs umgespeichert und in eine exe konvertiert wurde. Und der Code im WorkbookOpen.
Ist es möglich über weitere Codezeilen im TextEditor/vbs diese exe als Icon in der Taskleiste anzeigen zu lassen? Und wenn ja, wie müsste das aussehen? VB mit VisualStudio steht bei mir noch auf der to learnig liste. Aktuell aber kämpfe ich noch mit VBA ;)!
Danke schon mal vorne weg für Antworten, Tipps und Hilfestellungen.
Gruß
Dante
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 09:30:43
Nepumuk
Hallo Dante,
im Modul des Userforms:
Option Explicit

Private Declare PtrSafe Function FindWindowA Lib "user32.dll" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function GetWindowLongA Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal nIndex As Long) As LongPtr
Private Declare PtrSafe Function SetWindowLongA Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As LongPtr) As LongPtr
Private Declare PtrSafe Function ShowWindow Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal nCmdShow As Long) As Long

Private Const GC_CLASSNAMEUSERFORM As String = "ThunderDFrame"
Private Const GWL_EXSTYLE As Long = -20
Private Const WS_EX_APPWINDOW As LongPtr = &H40000
Private Const SW_HIDE As Long = 0
Private Const SW_SHOW As Long = 5

Private Sub CommandButton1_Click()
    Call Unload(Object:=Me)
    ' Application.Visible = True
End Sub

Private Sub UserForm_Activate()
    Dim lngptrHwnd As LongPtr, lngptrStyle As LongPtr
    lngptrHwnd = FindWindowA(GC_CLASSNAMEUSERFORM, Caption)
    Call ShowWindow(lngptrHwnd, SW_HIDE)
    lngptrStyle = GetWindowLongA(lngptrHwnd, GWL_EXSTYLE)
    lngptrStyle = lngptrStyle Or WS_EX_APPWINDOW
    Call SetWindowLongA(lngptrHwnd, GWL_EXSTYLE, lngptrStyle)
    Call ShowWindow(lngptrHwnd, SW_SHOW)
End Sub

Gruß
Nepumuk
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 09:51:05
Dante
Schönen guten Morgen Nepumuk!
Und mal wieder besten Dank für Deine Hilfe. Ich hatte diesen Code von Dir schon mal wo anders gefunden, da funktionierte er aber leider nicht.
Dieser hier geht auf jeden Fall problemlos!
Zwei Fragen dazu:
Für was brauche ich die CodeZeilen?:
Private Sub CommandButton1_Click()
Call Unload(Object:=Me)
' Application.Visible = True
End Sub
Kann ich die auch raus lassen da ich einen entsprechenden Button nicht habe/benutze?
Und die zweite wäre eine auch schon häufig gestellte Frage nach einem "benutzerdefinierten Icon" von der .exe in der Taskleiste? Da es ja aber nach wie vor eine Excel ist die lediglich über die .exe gestartet wird, wird das wohl nicht klappen, oder?
Gruß
Dante
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 09:54:20
Nepumuk
Hallo Dante,
die Prozedur ist in meiner Mustermappe. Den brauchst du nicht zwingend.
Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 10:10:53
Nepumuk
nochmal Hallo Dante,
die zweite Frage habe ich erst nach dem absenden bemerkt. Da lade ich dir eine Mustermappe hoch:
https://www.herber.de/bbs/user/135049.xlsm
Das Bild im Image-Control muss vom Type .ico sein damit es funktioniert. Es besteht aber auch die Möglichkeit ein Icon aus einer .exe / .dll zu extrahieren.
Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 10:49:01
Dante
Hey Nepumuk,
danke, das teste ich gleich mal. Das Icon hätte ich schon auf jeden Fall.
Eine nachträgliche Frage nochmal bezüglich des Icons in der Taskleiste(weil man doch immer wieder schwierige Kollegen hat -.-) Mich persönlich stört es nicht, aber dennoch die Frage:
Ich habe mehrere Anwendungen offen. unter anderem die UF die mir schon separat unten dann als Minivorschau angezeigt wird. Klicke ich in der Taskleiste unten rechts auf den Button leert Windows ja die Anzeige und zeigt den blanken Desktop. Klicke ich jetzt, z.B. auf mein Outlook, erscheint auch wieder die UF auf dem Desktop ohne das ich diese in der Taskleiste angewählt habe. Kann ich das irgendwie noch unterbinden? Wie gesagt, mich stört das wenig aber die lieben Kollege(n).
Gruß
Dante
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 10:54:07
Nepumuk
Hallo Dante,
ich kann dir nicht folgen. was hat Outlook mit dem Userform zu tun? Bei mir taucht das Userform und dessen Taskleistenfenster nur auf wenn ich die Excelmappe aktiviere.
Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:00:36
Dante
Hi Nepumuk,
Outlook war hier nur als Beispiel genannt.
Ich habe mehrere Sachen in der Taskleiste offen. Klicke ich auf Desktop anzeigen, wird ja alles minimiert und nur der Desktop ist zu sehen. Maximiere ich jetzt irgendeine Anwendung wieder, macht er mir die UF auch wieder sichtbar auf dem Desktop.
Ich hoffe es war jetzt verständlicher. Wenn nicht ist auch nicht schlimm, habe lediglich einen hier sitzen dem das stört....aber der stört sich auch so ziemlich an allem was nicht von Ihm kommt ;)!
Gruß
Dante
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:07:17
Dante
Hi Nepumuk,
danke, deine Beispielmappe passt und das Icon wird oben in der Leiste angezeigt. Aber was muss ich wo in den UF Code schreiben damit er das Icon auch da oben rein packt? Sorry, ich seh den Wald vor lauter Bäumen nicht mehr -.-!
Gruß
Dante
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:14:46
Nepumuk
Hallo Dante,
wo oben rein packten?
bei mir wird das Icon einmal im Userform und einmal in der Taskleiste angezeigt.
Userbild
Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:22:08
Dante
Hi Nepumuk,
super, genau so hätte ich es gerne. Aber bei mir wird Deine Beispiel Mappe so angezeigt:
Das Icon ist oben in der UF-Leiste, aber nicht in der Taskleiste.
Userbild
ich hoffe das Bild wird dargestellt, habe ich noch nie gemacht ;).
Und in meiner UF bekomme ich es irgendwie gar nicht hin. Weder in der UF, noch in der Taskleiste.
Gruß
Dante
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:28:09
Nepumuk
Hallo Dante,
du hast in den Einstellungen die Option "Schaltflächen in der Taskleiste gruppieren" ausgewählt. Dabei wird immer nur das erste Icon im der Taskleiste angezeigt, und das ist die Excelmappe.
Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:40:56
Dante
Oh, Gefahr erkannt Gefahr gebannt ;)! Stimmt. Jetzt zeigt er mir Deine Mappe auch so an. Nur in meiner UF bekomme ich es nicht hin. Das Icon ist in der UF im VBA-Editor als Image eingefügt. Aber ich finde die CodeZeilen nicht mit denen ich es in die Leiste bekomme. Aktuell ist es einfach nur als kleines Bild auf der UserForm zu sehen. Aber nicht oben in der Titelzeile der UF und auch nicht in der Taskleiste.
Gruß
Dante
Anzeige
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:45:08
Nepumuk
Hallo Dante,
in meiner Mustermappe funktioniert es, wie du siehst.
Gruß
Nepumuk
AW: Datei aus UserForm in neuer Instanz öffnen
07.02.2020 11:49:34
Dante
Hallo Nepumuk!
Yepp, ich sehe es. Jetzt muss ich nur noch rausfinden was ich verkehrt mache ;)!
Bekomme ich aber denk ich hin!
Danke Dir vielmals!
Jetzt geht es erstmal gleich ins Wochenende!
Wünsche Dir ein schönes, und mein erstes Wochenendbier trink ich auf Dich ;)!
Gruß
Dante

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige