Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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

XLS Datei versteckt öffnen, GetObject?

XLS Datei versteckt öffnen, GetObject?
Holger
Hallo,
ich öffne während der Laufzeit meines Makros eine Excel Datei, aus der ich Daten auslese.
Das Problem ist, dass automatisch auf die neue Datei der Fokus gelegt wird und das möchte ich nicht.
Ich habe etwas von GetObject gelesen, weiß aber die genaue Anwenung nicht.
Wie kann ich eine Datei versteckt öffnen, so dass der Focus auf der ursprüunglichen Datei bleibt?
App.visible = false klappt auch nicht, weil dann ist die gesamte Excel Anwendung weg.
Hier mein Code,
Gruß+Dank
Holger
Sub Öffne
Const PfadSQL = "C\SQL Publishes.xlsx"
Set wbSQL = Workbooks.Open(PfadSQL, ReadOnly:=True)
Set wsSQL = Worksheets("Tabelle1")
NumofRow = wsSQL.Cells(Rows.Count, 2).End(xlUp).Row
Set rngSQL = wsSQL.Range("B2:B" & NumofRow)
End Sub

AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 08:33:05
Martin
Hallo Holger,
versuche es mal mit

ActiveWindow.Visible = False
Viele Grüße
Martin
AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 08:34:37
Holger
Hallo,
das klappt leider auch nicht.
AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 08:40:40
Martin
Hallo Holger,
warum klappt es nicht? Mit ...

ActiveWindow.Visible = False
... wird die aktive Arbeitsmappe ausgeblendet, bleibt aber geöffnet. Der Befehl müsste direkt hinter die Zeile gesetzt werden, nachdem die auszublendende Excel-Datei geöffnet wurde.
Du kannst auch schreiben ...

Windows("Mappe2").Visible = False
... wobei "Mappe2" durch den entsprechenden Namen der auszublendenden Datei ersetzt werden muss.
Viele Grüße
Martin
Anzeige
GetObject Code klappt nicht
19.10.2010 08:46:10
Holger
Hallo,
es bleibt trotzdem geöffnet und ausserdem kann ich dann den Rangebereich nicht mehr definieren bzw findet er diesen nicht mehr.
Mein GetObject Code klappt leider nicht
Public Sub Temp()
Dim objSQL As Object
Dim ws As Worksheet
Const PfadSQL = "SQL Publishes.xlsx"
Set objSQL = GetObject(PfadSQL)
Set ws = objSQL.Application.Worksheets("Tabelle1")
ws.Activate 'FEHLER !!!!!!!!
End Sub

AW: GetObject Code klappt nicht
19.10.2010 08:49:33
Hajo_Zi
Hallo Holger,
auf select Activate usw. kann in VBA zu 99,9% verzichtet werden. Vorschlag kann nichzt unterbreitet werden da der Code nicht bekannt.

Anzeige
AW: GetObject Code klappt nicht
19.10.2010 08:54:25
Holger
Hallo Hajo,
der Code ist zu lang, um ihn euch anzutun.
In der Original Datei schleife ich durch die Zeilen und pro Zeile schaue ich nach,
ob es in der anderen Datei eine Übereinstimmung gibt.
Daher definiere ich zwei Rangebereiche (der Rangebereich der SQL Datei wird als Parameter an eine Function übergeben). Und um den Rangebereich definieren zu können, muss ich ja aus der SQL Datei den Worksheet erstmal bekanntmachen.
Also im Prinzip will ich eine XLS Datei versteckt öffnen und einen Rangebereich definieren.
Gibt es da keine Möglichkeit?
AW: GetObject Code klappt nicht
19.10.2010 08:58:10
Hajo_Zi
Hallo Holger,
eine Lösung wurde Dir vorgeschlagen.
Du möchtest keine Lösung habe, da Du keine Teilcode gepostest hast. Darum der nur der Hinweis arbeite mit With.
Gruß Hajo
Anzeige
AW: GetObject Code klappt nicht
19.10.2010 09:08:30
Holger
Hallo Hajo,
oben steht der Code, um den es geht.
Lösung von Martin funktioniert nicht.
Du sprichst wie meistens in Rätseln.
AW: GetObject Code klappt nicht
19.10.2010 09:21:42
Hajo_Zi
Hallo Holger,
ich muss blind sein in dem ersten Beitrag steht Code, die Zeile mit dem Actvate konnte ich da aber nicht finden.
Gruß Hajo
AW: GetObject Code klappt nicht
19.10.2010 10:55:54
Holger
Hallo Hajo,
das activate war nur zum Testen, um zu sehen ob die Worksheet Zuweisung funktioniert hat.
Hat sie ja leider nicht, weil ich mich mit den GetObject nicht auskenne wie danach die
Zuweisungen klappen.
Anzeige
Noch eine Möglichkeit...
19.10.2010 08:51:58
Martin
Hallo Holger,
wenn es wirklich nur um den Fokus geht, dann kannst du mit ...

ThisWorkbook.Activate
...nach dem Öffnen-Befehl der anderen Exceldatei den Fokus einfach wieder auf die Datei zurücksetzen, in der das Makro ausgeführt wird. Natürlich kannst du auch hier schreiben ...

Workbooks("Mappe2").Activate
... und "Mappe2" durch den Namen ersetzen, auf den der Focus gelegt werden soll.
Viele Grüße
Martin
AW: Noch eine Möglichkeit...
19.10.2010 08:56:52
Holger
Klappt auch nicht :(
Die Dateu wird trotzdem aufgemacht und ist sichtbar, in dem Moment, in dem der
Workbooks.Open Befehl kommt. Es ist ja wie verhext.
Anzeige
AW: Noch eine Möglichkeit...
19.10.2010 09:03:26
Martin
Hallo Holger,
dann setzte vor die Workbooks.Open Anweisung ...

Application.ScreenUpdating = False
und nach der Visible- oder Activate-Anweisung ein den Befehl ...

Application.ScreenUpdating = True
Das sollte den Bildschirm während des Öffnen-Vorgangs "einfrieren".
Viele Grüße
Martin
AW: Noch eine Möglichkeit...
19.10.2010 09:07:35
Holger
Hallo Martin,
Screenupdating steht sowieso immer auf false in meinen Makros ...
AW: Noch eine Möglichkeit...
19.10.2010 09:12:25
Martin
Hallo Holger,
tut mir leid, jetzt bin auch mit mit meinem Latein am Ende. Vielleicht kann ich dir auch nicht weiterhelfen, weil ich noch mit Excel 2003 arbeite und mit Excel 2007 keine Erfahrungen habe. Ich setze deine Frage auf "offen", vielleicht kann dir jemand anderes aus dem Forum weiterhelfen.
Viele Grüße
Martin
Anzeige
AW: Noch eine Möglichkeit...
19.10.2010 09:17:57
Holger
Hallo Martin,
Hab dennoch Vielen Dank für deine Mühe!
AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 10:54:21
Holger
Hallo,
nein, das bin ich, aber die Lösungen haben genausowenig funktioniert
bzw passen nicht zum Anspruch.
Die Datei soll geöffnet werden, ohne dass der Fokus darauf gelegt wird.
Alle vorgeschlagenen Lösungen bringen da nichts, weil dennoch die Datei
angezeigt wird und danach erst der Code greift!
Anzeige
AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 11:11:11
Heiko
Hallo Holger,
also bei mir läuft das (EXCEL 2007, Win XP Prof) ohne das ich die geöffnete Mappe sehe.
Was da bei dir nicht klappt kann ich auch nicht sagen, darum lasse ich die Frage mal offen.
Sub tt()
Dim wkb As Workbook, blnSWIT As Boolean
Dim lngI As Long
blnSWIT = Application.ShowWindowsInTaskbar 'Zustand merken
With Application
.ScreenUpdating = False
.ShowWindowsInTaskbar = False 'Fenster in Taskleiste nicht anzeigen
End With
Set wkb = Workbooks.Open("c:\copy\test.xlsx", ReadOnly:=True)
ThisWorkbook.Worksheets(1).Range("A1") = wkb.Worksheets(1).Range("A1")
' Hier mal testweise was tun in der geöffneten Mappe, also ich sehe dann nur die Mappe mit dem  _
Makro die Sanduhr und sonst nichts!
For lngI = 1 To 100000
wkb.Worksheets(1).Cells(lngI, 2) = lngI
Next lngI
wkb.Close False
With Application
.ScreenUpdating = True
.ShowWindowsInTaskbar = blnSWIT 'Zustand wiederherstellen
End With
End Sub

Gruß Heiko
Anzeige
AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 11:14:46
Holger
Hallo Heiko,
hab den Code getestet und bei mir erscheint sofort die Datei nach den Open Befehl!?
Ich verstehe das echt nicht, irgendwas muss da bei mir noch anders sein.
AW: XLS Datei versteckt öffnen, GetObject?
19.10.2010 11:27:13
Heiko
Hallo Holger,
wie Hajo immer so schön zu sagen pflegt, wir können nicht auf deinen Rechner gucken.
Letzter Tipp / Vermutung, schalte mal die Events ab, wenn da irgendwo noch Makros drin sind in den Dateien.
Sub tt()
Dim wkb As Workbook, blnSWIT As Boolean
Dim lngI As Long
blnSWIT = Application.ShowWindowsInTaskbar 'Zustand merken
With Application
.ScreenUpdating = False
.EnableEvents = False
.ShowWindowsInTaskbar = False 'Fenster in Taskleiste nicht anzeigen
End With
Set wkb = Workbooks.Open("c:\copy\test.xlsm", ReadOnly:=True)
ThisWorkbook.Worksheets(1).Range("A1") = wkb.Worksheets(1).Range("A1")
' Hier mal testweise was tun der geöffneten Mappe, also ich sehe dann nur die Mappe mit dem  _
Makro die Sanduhr und sonst nichts!
For lngI = 1 To 100000
wkb.Worksheets(1).Cells(lngI, 2) = lngI
Next lngI
wkb.Close False
With Application
.ScreenUpdating = True
.EnableEvents = True
.ShowWindowsInTaskbar = blnSWIT 'Zustand wiederherstellen
End With
End Sub
Gruß Heiko
Anzeige
AW: XLS Datei versteckt öffnen, GetObject?
20.10.2010 07:32:02
Dirk
Hallo Heiko,
um mit getobject eine datei zu oeffnen musst Du folgendes tun:
Dim MeinWB As Object ' Variable welche die Referenz zur neuen Excel-Instanz beinhaltet
Set MeinWB = GetObject(MeinWorkBook) 'Variable 'MeinWorkbook' haelt den kompletten Pfad und Dateiname zum Workbook z.B. "c:\Meine Dokumente\MeinWB.xls"
ReportWB.Application.EnableEvents = False 'Damit werden die Events fuer die Neue excel-Instanz ausgeschaltet, die startende Instanz hat weiterhin events, falls nicht auch ausgeschaltet.
'Set TargetBook = ReportWB 'Damit wird das Workbook 'Targetbook' als MeinWB gesetzt
Fuer alle aktivitaeten im nicht sichtbaren MeinWB musst Du dieses WB entsprechend referenzieren.
falls Du das Workbook 'MeinWB' sichtbar machen moechtest, musst Du das Kommando
Windows(MeinWB.Name).Visible = True veerwenden bzw. Windows(MeinWB.Name).Visible = False
zumVerstecken.
gruss
Dirk aus Dubai
Falls

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige