Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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
Inhaltsverzeichnis

Andere Excel Instanz ansprechen

Andere Excel Instanz ansprechen
10.02.2021 15:09:20
M.A.
Hallo zusammen,
mit einer Kombination aus einer VBS Datei und folgendem Code bei Workbook_Open(), erstelle ich eine komplett neue Excel Instanz (Applikation) bei vorherigen und anschließendem Öffnen anderer Excel Dateien.
  • Private Sub Workbook_Deactivate() Application.ScreenUpdating = False Dim n As String If Workbooks.Count > 1 Then Application.EnableEvents = False With ActiveWorkbook n = .FullName .Close savechanges:=False End With Application.EnableEvents = True Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") On Error Resume Next If Dir(n) "" Then 'MsgBox "open" xlApp.Workbooks.Open Filename:=n If Err.Number > 0 Then xlApp.Quit Else xlApp.Application.Visible = True End If Else xlApp.Workbooks.Add xlApp.Application.Visible = True End If Set xlApp = Nothing End If Workbooks("XMAIL_V4.xlsm").Activate Application.Visible = False End Sub

  • Im Taskmanager sind es 2 separate Zeilen.
    In Datei 1 wird per Combobox ein Standort ausgewählt.
    Ich möchte nun, dass bei Auswahl eines Standortes per Dropdown in Datei 1, bei Datei 2 das
    entsprechende Sheet mit dem (identischen) Standortnamen XY angewählt wird.
    In der selben Instanz kein Problem.
  • If CB_Test.Value = "Hagen" Then Workbooks("Test.xlsm").Sheets("Hagen").Select End If
  • Für eine andere Instanz habe ich bisher nur
  • Set xlApp = GetObject("ExampleBook.xlsx").Application

  • gefunden, was nicht funktionierte.
    Vermutlich ist die Lösung wieder einfacher als gedacht :)
    Lieben Dank vorab.

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Andere Excel Instanz ansprechen
    10.02.2021 15:37:00
    Nepumuk
    Hallo,
    du hast doch die andere Instanz schon in der Variablen xlApp. Deklariere diese in einem Standardmodul als öffentliche Objektvariable dann kannst du in jeder Prozedur darauf zugreifen.
    Gruß
    Nepumuk
    AW: Andere Excel Instanz ansprechen
    11.02.2021 15:26:05
    M.A.
    Hallo Nepumuk,
    danke für die schnelle Antwort.
    Bekomme ich irgendwie nicht hin. Bin aber auch blutiger Anfänger.
    Option Explicit
    Public xlApp As Object
    Sub test2()
    xlApp.Workbooks("Test.xlsm").Sheets("Hagen").Select
    End Sub
    
    Beim Starten von Test2() erscheint die Fehlermeldung Objektvariable oder With-BV nicht festgelegt.
    Habe auch andere Variationen probiert.
    Anzeige
    AW: Andere Excel Instanz ansprechen
    11.02.2021 15:38:08
    Nepumuk
    Hallo,
    hast du im Deactivate-Event die Deklaration Dim xlApp As Object in der Prozedur gelöscht und auch die Zeile Set xlApp = Nothing?
    Zudem Würde ich es so deklarieren:
    Public xlApp As Excel.Application
    
    Gruß
    Nepumuk
    AW: Andere Excel Instanz ansprechen
    11.02.2021 16:07:44
    M.A.
    Deklarationen habe ich nun wie beschrieben gelöscht im Deactivate-Event. Puplic Deklaration wie von dir beschrieben angepasst. Das Workbook in der 2. Application lässt sich weiterhin nicht ansprechen. Identischer Fehler.
    With xlApp
    Workbooks("Test.xlsm").Sheets("Hagen").Select
    End With
    End Sub
    

    Sub Test3()
    xlApp.Workbooks("Test.xlsm").Sheets("Hagen").Select
    End Sub
    
    etc.
    Anzeige
    AW: Andere Excel Instanz ansprechen
    11.02.2021 16:19:01
    Nepumuk
    Hallo,
    ich habe es jetzt selbst getestet, funktioniert einwandfrei. Versuch es mal damit:
    Sub Test3()
    xlApp.Workbooks("Test.xlsm").Sheets(1).Select
    End Sub
    

    Wenn das klappt, dann gibt es entweder keine Tabelle mit dem Namen "Hagen" oder es hat sich im Namen versehentlich ein Leerzeichen vorne oder hinten eingeschlichen.
    Gruß
    Nepumuk
    AW: Andere Excel Instanz ansprechen
    11.02.2021 16:38:33
    M.A.
    Danke fürs Testen Nepumuk,
    Funktioniert. Allerdings nur, wenn ich es nicht zusätzlich über die .vbs öffne.
    vbs Code:
    Option Explicit
    Dim Excel
    Set Excel = WScript.CreateObject("Excel.Application")
    Excel.Visible = True
    Excel.Workbooks.Open  "\\vwserver\users\Test.xlsm", , , , "Passwort123"
    Set Excel = Nothing
    WScript.Quit
    
    Meine "Datei" soll und wird jedoch vorher damit gestartet.
    Fällt dir da zufällig auch etwas ein? ^^
    Anzeige
    AW: Andere Excel Instanz ansprechen
    11.02.2021 18:08:22
    Nepumuk
    Hallo,
    hast du es damit getestet:
    Public Sub Test()
        Dim objWorkbook As Workbook
        Set objWorkbook = GetObject("\\vwserver\users\Test.xlsm")
        MsgBox objWorkbook.Name
    End Sub

    Gruß
    Nepumuk
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige