Registriert seit: 16.02.2018
Version(en): 2016
Hallo,
ich lese in meiner Tabelle alle geöffneten Excelfiles und kontrolliere in welcher Excel die richtigen Werte stehen.
Diese Tabelle verwende ich dann.(Temp)
Code: For Each Temp In Workbooks
If Temp.Sheets(1).Range("A20").Text = "XY" Then 'Wenn richtige Version der Excel
If Temp.Sheets(1).Range("A21").Text = "AB" Then 'Wenn richtig
Set PartFamily = Temp
Exit For
End If
End If
Next Temp
Funktioniert gut solange ich Excel normal vom PC Speicherort öffne.
Öffne ich hingegen eine Tabelle aus einem Programm heraus wo die Excel nicht bei mir gespeichert ist wird diese erst gar nicht in den Workbooks aufgelistet .
Sprich in der VBA Oberfläche scheint diese nicht auf. Bzw. ich habe dann 2 VBA Fenster nebeneinander die nicht auf die jeweils andere Tabelle zugreifen können.
Kann ich dann trotzdem die Tabelle irgendwie einlesen?
liebe Grüße
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
Hallo,
wenn ich das jetzt richtig verstehe, hast Du dann zwei unabhängige Instanzen von Excel, die nichts voneinander wissen.
Um von einer Instanz auf eine andere per VBA zugreifen zu können, kommst Du m.W. um Windows API nicht herum.
Wie sowas geht, kannst Du z.B. hier nachlesen Excel VBA Application Objekte per Windows API erzeugen.
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Registriert seit: 16.02.2018
Version(en): 2016
(09.04.2018, 17:08)maninweb schrieb: Hallo,
wenn ich das jetzt richtig verstehe, hast Du dann zwei unabhängige Instanzen von Excel, die nichts voneinander wissen.
Um von einer Instanz auf eine andere per VBA zugreifen zu können, kommst Du m.W. um Windows API nicht herum.
Wie sowas geht, kannst Du z.B. hier nachlesen Excel VBA Application Objekte per Windows API erzeugen.
Gruß
Hi,
ja genau das ist mein Problem =(
habe bemerkt dass es ein Häkchen gibt welches verhindert das beide in der selben Instanz geöffnet werden.
Aber ich kann dies in der Tabelle nicht ändern. Es wird automatisch generiert.
Leider werde ich aus dem Artikel nicht schlau muss mich da nochmals durchlesen.
:) Danke für die Hilfe!!
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo Topology,
Vollzitate sind zu 99% unnötig, vor allem dann, wenn sich die Antwort auf einen unmittelbar davorstehenden Beitrag bezieht. Notwendige (Teil)Zitate können durch kopieren des entsprechenden Textbereichs in Verbindung mit dem 3. Symbol von rechts in der zweiten Symbolleiste erreicht werden.
Für normale Antworten bitte den Antworten-Button (rechts) benutzen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 16.02.2018
Version(en): 2016
Hallo,
hat jemand eine Idee wie man das sonst noch lösen könnte,
oder geht das wirklich nur mit diesem Code der bereits gepostet wurde?
liebe Grüße,
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
Hallo,
in einem vorherigen Beitrag hattest Du ein Kästchen erwähnt, welches sich nicht aktivieren/deaktivieren lässt.
Da könntest Du ggf. ansetzen, z.B. ggf. einen Admin fragen (falls Du in einem Unternehmen bist), ob sich
die Sperre nicht aufheben lässt. Bzw. recherchieren, warum dieses gesperrt ist, z.B. Anbieter fragen.
Ansonsten sehe ich meinerseits nur die Möglichkeit, die durch das Tool geöffnete Datei abzuspeichern,
zu schließen und in der anderen Instanz zu öffnen.
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Registriert seit: 16.02.2018
Version(en): 2016
Hallo maninweb,
Werde nächste Woche mit dem Anbieter und unserem Admin sprechen.
Vielleicht lässt sich da was machen:) danke für die Hilfe
habe diesen Code gefunden, leider gibt mir dieser Code eine Fehlermeldung bei Set WbExtWB
Code: Dim wbAktWB As Workbook, wbExtWB As Workbook
Dim xlApp As Excel.Application
Set wbAktWB = ActiveWorkbook 'Die aktuelle Mappe
Set xlApp = GetObject(, "Excel.Application") 'die andere Instanz
Set wbExtWB = xlApp.Workbooks(1) 'die 1. Mappe der anderen Instanz
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
welche Meldung kommt denn da?
Unabhängig davon wäre es auch unklar, auf welche Instanz da
Set xlApp = GetObject(, "Excel.Application") 'die andere Instanz
eigentlich zugegriffen wird. Theoretisch sehe ich da zwei Möglichkeiten. entweder die naheliegende, also die, aus der der Code aufgerufen wird, oder die in der Prozessliste zuerst aufgerufene. Womit wir wieder bei den API wären, wo Du z.B. anhand des Fenstertitels differenzieren kannst.
Warum tust Du eigentlich Deine Datei nicht in der vom anderen Programm erzeugten Instanz öffnen?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 02.08.2014
Version(en): 2016
16.04.2018, 10:56
(Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2018, 10:56 von losgehts.)
Hallo,
auch ich frage mich, warum du nicht deine Datei mit der Instanz, die vom anderen Programm erzeugt wurde, öffnest.
Ansonsten fallen mir noch zwei weitere Möglichkeiten ein, deren Sinnhaftigkeit aber von deinem gesamten Workflow abhängt:
a) Zum einen könntest du den VBA-Code in einem AddIn haben. Das AddIn wird in jeder Instanz geöffnet - und damit steht der Code zur Verfügung.
b) Programme, die eine Exceldatei erzeugen, können meist auch andere Exportformate erzeugen. Vielleicht wäre es einfacher, den Export z.B. als csv Datei zu speichern und dann mit VBA auf diese zuzugreifen.
Grüße, Ulrich
|