Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excelmappe in Variable laden

Excelmappe in Variable laden
16.03.2006 17:20:11
Guenni
Hallo.
Ich habe folgendes Problem:
Ich suche eine Möglichkeit, ein Excelmappe in eine Variable zu laden und aus dieser dann einige Zelleninhalte usw. heraus zu holen.
Momentan öffne ich einfach über das Makro jede Mappe und zieh mir dann die Zellen daraus. Das ganze funzt auch, dauert aber sehr lang trotz Screenupdating auf False (über 300 Mappen!!).
Folgendes habe ich danach probiert. Funktioniert zwar, hat aber einen Hacken:
Dim mappe As Excel.Application 'Dimensioniert mappe als Excel
Set mappe = Excel.Application 'Setzt mappe als Excel, gibt sonst Fehler
mappe.Workbooks.Open (Filename der zu öffnenden Mappe) 'Mappe öffnen
MsgBox mappe.Sheets(2).Name 'anzeigen des Namens des z.B. 2.Blattes
Das ganze läuft dann in einer Schleife, klar, bis alle Mappen durch sind.
Der Hacken: die Dateien werden trotzdem sichtbar geöffnet!!!! Windows öffnet fleißig für jede Datei einen Reiter in der Taskleiste.
Dadurch ist die ganze Sache genau so langsam wie das was ich vorher gemacht habe.
Kennt jemand eine Möglichkeit eine Exceltabelle in eine Variable zu laden ohne sie dabei praktisch zu öffnen?

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelmappe in Variable laden
16.03.2006 17:22:51
Holger
Hi,
siehe GetObject
mfg Holger
AW: Excelmappe in Variable laden
20.03.2006 09:28:16
Guenni
Hallo Holger
Ich hab das Getobject mal probiert. Ich kann zwar eine Exceltabelle einlesen, komme aber nicht an den Inhalt.
Hast Du ne Ahnung, wie ich dran komm?
Gruss
Guenni
AW: Excelmappe in Variable laden
16.03.2006 17:32:01
Reinhard
Hi Guenni,
hast du Die Berechnung beim Einlesen auf manuell gestellt?
du brauchst aus jeder Datei nur einige Zellinhalte?
Wie wärs denn du schreibst ein Makro was du in Before_close der 300 Dateien stellst und jeweils aus dem Dateinamen eine Dateiname.txt erzeugt indem diese einzelenen Zellinhalte stehen.
Dann in der Mastermappe nur diese txt-dateien als Blatt öffnen.
Deses Makro einmalig erstellen, exportieren, dann mit einem Mkaro in allen Dateien importieren.
Nur so als Idee, deshalb Frage noch offen
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Excelmappe in Variable laden
20.03.2006 09:06:26
Guenni
Hallo Reinhard.
Die Idee find ich garnicht mal schlecht.
Das Problem ist nur, es werden immer wieder Mappen erstellt, die mein Makro durchsuchen muß. Diese werden dann auch noch von mehreren Leuten auf mehreren Rechnern erstellt und dann kann ich nicht mehr garantieren, das die auch alle das Marko zur Erstellung der txt-Datei drin haben.
Aber die Idee ist interessant, muß ich mir merken.
Danke.
Guenni
AW: Excelmappe in Variable laden
16.03.2006 19:58:13
ChrisL
Hallo
Die Variable mappe enthält die Applikation und nicht die Mappe.
Dim WB As Workbook
Set WB = Workbooks(...)
WB.Open
Um den Tabellennamen zu ermitteln kommst du um das Öffnen nicht rum.
Falls Tabellennamen bekannt vielleicht so...
ExecuteExcel4Macro("'C:\excel\[test.xls]muster'!R1C1")
Gruss
Chris
Anzeige
AW: Excelmappe in Variable laden
20.03.2006 09:15:40
Guenni
Hallo Chris.
Auf die Sache, bin ich gestern auch gestoßen. Hab es dann mit noch einer Variable als Excel Application erweitert.
Dim objExcel
Dim objWorkBook
Set objExcel = CreateObject("EXCEL.APPLICATION")
Set objWorkBook = objExcel.Workbooks.Open(dateiname)
So funktioniert es zwar, macht in der Geschwindigkeit aber nicht wirklich was aus.
Einziger Vorteil, man sieht die geöffnete Excelmappe nicht.
Aber VORSICHT!!! Nicht vergessen die Variable wieder zu entladen!!! Sonst habt Ihr ständig eine zusätzliche Excel Instanz im Hintergrund laufen!!
Set objWorkBook = Nothing
Set objExcel = Nothing
Macht sich vorallem bemerkbar, wenn das Makro einen Fehler hat und vor dem Set ... Nothing aussteigt. Machst Du dann Excel komplett zu und wieder auf, hast Du plötzlich die in der Variable geöffnete Mappe auf dem Schirm!!
Trotzdem Danke.
Gruss
Guenni
Anzeige
AW: Excelmappe in Variable laden
20.03.2006 13:15:47
ChrisL
Hallo
Da hast du recht. Würde einfach darauf achten, dass du die Applikation nur einmal definierst, und anschliessend innerhalb der Applikation die Mappen öffnest. Wenn du die Applikation zusammen mit den Mappen 500 mal neu deklarierst, dann könnte dies den Prozess verlangsamen.
Gruss
Chris
AW: Excelmappe in Variable laden
20.03.2006 13:27:13
Guenni
Hallo
Ich definiere die Applikation nur am Anfang des Makros. Danach lade ich immer eine Mappe in die Variable objWorkBook, hol mir die Daten daraus und schließe die Mappe wieder.
Ist leider genauso langsam, als wenn ich die Mappen einfach in dem schon geöffneten Excel öffne usw.
Gruss
Guenni
Anzeige
AW: Excelmappe in Variable laden
20.03.2006 13:46:24
ChrisL
Hallo
Alles klar. Dann ist ja gut :-)
Danke für die Rückmeldung und Gruss
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige