Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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
Xml Import dauert sehr lange
22.05.2013 10:51:31
Bernhard
Hallo VBA-Profis,
ich nutze seit längerem die Funktion XmlImport in VBA, um größere Xml-Dateien einzulesen (Größe in Excel ca. 7500 Zeilen, 85 Spalten).
(Anbei der Code).
Mein Problem:
Nach erstmaligem Öffnen der Excel-Datei dauert das Einlesen ca. 3 Sekunden.
Möchte ich erneut eine Xml einlesen, dauert der Lesevorgang bis zu 40 Sekunden (auch bei der ein und der selben Datei). Dabei fällt auf, dass dabei in der Statusleiste von Excel "Keine Rückmeldung" eingeblendet wird. Nach den 40 Sekunden wird der Inhalt der Xml jedoch richtig angezeigt und man kann wie gewohnt weiterarbeiten.
Um den Einlese-Vorgang jedoch wieder schnell hinzubekommen, muss Excel geschlossen und wieder geöffnet werden.
Welchen Grund hat das, bzw. wie kann ich dieses Verhalten verhindern?
Danke schon mal für eure Antworten.
Grüße
Bernhard
Private Sub CommandButton1_Click()
Dim strFileName As String
'ggf. Laufwerk und Ordner als Vorgabe setzen
ChDir "\"
ChDrive "c:\"
'Das Dialogfenster
Dateiname = Application.GetOpenFilename _
("XML-Dateien (*.xml),*.xml")
If Dateiname = False Then Exit Sub
strFileName = Dateiname
ActiveWorkbook.XmlImport strFileName, ImportMap:=Nothing, Overwrite:=True, Destination:=Sheets(" _
_
Tabelle1").Range("$A$10")
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Xml Import dauert sehr lange
22.05.2013 12:15:37
Martin
Hallo Bernhard,
bitte pobiere mal folgenden Code, bei dem ledliglich vorübergehend die automatische Neuberechnung deaktiviert wird:

Private Sub CommandButton1_Click()
Dim strFileName As String
Application.Calculation = xlCalculationManual
'ggf. Laufwerk und Ordner als Vorgabe setzen
ChDir "\"
ChDrive "c:\"
'Das Dialogfenster
Dateiname = Application.GetOpenFilename _
("XML-Dateien (*.xml),*.xml")
If Dateiname = False Then Exit Sub
strFileName = Dateiname
ActiveWorkbook.XmlImport strFileName, ImportMap:=Nothing, Overwrite:=True, Destination:= _
Sheets("Tabelle1").Range("$A$10")
Application.Calculation = xlCalculationAutomatic
End Sub
Viele Grüße
Martin

Anzeige
AW: Xml Import dauert sehr lange
22.05.2013 12:18:31
Bernhard
Hallo Martin,
danke für deinen Vorschlag.
Ich habe es ausprobiert, löst das Problem jedoch leider nicht.
Grüße
Bernhard

AW: Xml Import dauert sehr lange
22.05.2013 15:16:13
Bernhard
Update:
Nach vielen Versuchen und Probieren habe ich jetzt folgendes festgestellt:
- Wenn ich den oben genannten Code in ein neues (leeres) Excel-Dokument einbaue, funktioniert es immer schnell
- In dem Dokument in dem ich eigentlich arbeite gibt es sehr viele Formeln zur Auswertung (mit Sverweis, Index, Verweis, wenn, etc.). Dieses Dokument hat nur durch die enthaltenen Formeln bereits 5 MB
- Sobald dieses Dokument offen ist, funktioniert der Xml-Import in dieser wie auch in der "leeren" Arbeitsmappe nur sehr langsam (40 sec).
Sieht jemand von euch eine Chance, das trotzdem hinzubekommen?
Grüße
Bernhard

Anzeige
AW: Xml Import dauert sehr lange
22.05.2013 15:21:19
Klaus
Hallo Bernhard,
deaktiviere vorübergehend die automatische Neuberechnung. Natürlich in der Datei mit den vielen Formeln.
Grüße,
Klaus M.vdT.

AW: Xml Import dauert sehr lange
22.05.2013 15:32:32
Bernhard
Hallo Klaus,
wie mit Martin schon besprochen, das habe ich bereits versucht.
Das bringt jedoch keine Verbesserung.
Vielleicht liegt es auch nur rein an der Größe der Arbeitsmappe.
Wenn ich im Debug-Modus bin, kommt die Sanduhr direkt nach Ausführen des Befehls
ActiveWorkbook.XmlImport strFileName, ImportMap:=Nothing, Overwrite:=True, Destination:= _
Sheets("Tabelle1").Range("$A$10")
Excel und VBA ist dann für 40 Sekunden nicht mehr bedienbar.
Ich weiß jetzt überhaupt nicht mehr weiter.
Hier der aktuelle Code:
Private Sub CommandButton1_Click()
Dim strFileName As String
Application.Calculation = xlCalculationManual
'ggf. Laufwerk und Ordner als Vorgabe setzen
ChDir "\"
ChDrive "c:\"
'Das Dialogfenster
Dateiname = Application.GetOpenFilename _
("XML-Dateien (*.xml),*.xml")
If Dateiname = False Then Exit Sub
strFileName = Dateiname
ActiveWorkbook.XmlImport strFileName, ImportMap:=Nothing, Overwrite:=True, Destination:= _
Sheets("Tabelle1").Range("$A$10")
Application.Calculation = xlCalculationAutomatic
End Sub

Anzeige
AW: Xml Import dauert sehr lange
22.05.2013 16:46:08
Martin
Hallo Bernhard,
dass die Umschaltung auf manuelle Berechnung nichts hilft, kommt mir etwas merkwürdig vor. Aber hier ein anderer - nicht getesteter - Lösungsansatz, bei dem die Daten zuvor in eine neue leere Arbeitsmappe importiert und anschließend in die vorgesehene Arbeitsmappe kopiert werden:

Private CommandButton1_Click()
Dim strFileName As String
'ggf. Laufwerk und Ordner als Vorgabe setzen
ChDir "\"
ChDrive "c:\"
'Das Dialogfenster
Dateiname = Application.GetOpenFilename _
("XML-Dateien (*.xml),*.xml")
If Dateiname = False Then Exit Sub
strFileName = Dateiname
Workbooks.Add
ActiveWorkbook.XmlImport strFileName, ImportMap:=Nothing, Overwrite:=True, Destination:= _
Sheets("Tabelle1").Range("A1")
ActiveSheet.UsedRange.Copy
ThisWorkbook.Sheets("Tabelle1").Range("A10").Paste
ActiveWorkbook.Close SaveChanges:=False
End Sub
Viele Grüße
Martin
Anzeige

53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige