Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst XML Dateien in Excel importieren

Mitglied: a.grothe

a.grothe (Level 1) - Jetzt verbinden

26.11.2013 um 12:49 Uhr, 11114 Aufrufe, 12 Kommentare, 3 Danke

Hallo zusammen,

ich möchte zwei XML Dateien (bzw. mehrere) nach Excel importieren.

Mit folgendder Sache klappt es auch ansatzweise.

Im Verzeichnis D:\_TEST\

liegen zwei Dateien TEST.xml und TEST1.xml, leider liest er mir nach Excel immer nur die erste Datei ein die zweite nimmt er nicht.

Wo liegt mein Fehler die Struktur der beiden Dokumente ist gleich?

Sub XML_Dateien_Einlesen()
'
Dim Datei$, Pfad$, DateiMatch$
Dim AnfZelle As Range, Wb As Workbook, Ws As Worksheet
On Error Resume Next

Set Wb = ActiveWorkbook
Set Ws = Wb.ActiveSheet

Set AnfZelle = Ws.Range("A1") '<== Anfangszelle im aktiven Arbeitsblatt der aktiven Arb.Mappe

Pfad$ = "D:\_TEST\" '<== Pfad zum Verzeichnis einstellen
DateiMatch$ = "TEST*.xml" '<== Datei-Matching, um gewünschte Dateien zu filtern

Datei$ = Dir(Pfad$ & DateiMatch$, vbNormal)

Do Until Len(Datei$) = 0
Wb.XmlImport URL:=Pfad$ & Datei$, ImportMap:=Nothing, Overwrite:=True, Destination:=AnfZelle
Datei$ = Dir()
Set AnfZelle = AnfZelle.Offset(1)
Loop

End Sub
Mitglied: colinardo
26.11.2013, aktualisiert 27.11.2013
Hallo a.grothe,
es funktioniert nur der erste Import, weil du beim zweiten Durchlauf der Schleife als "Destination" einen Bereich angibst der nach dem ersten Import bereits der ersten Datenquelle gehört, bzw. in dem bereits die Daten des ersten Imports stehen. Da ein XML-Import immer mit einer Zuordnung zur XML-Datei durchgeführt wird darf kein anderer Import diesen Bereich überschreiben. Du musst also nach dem ersten Import die nächste leere Zelle ermitteln und dann dort hinein importieren.
Beachte dabei das dann in allen Zeilen des Imports in Spalte A ein Wert stehen muss. Wenn du das nicht sicherstellen kannst, musst du die nächste freie Zelle es über die Eigenschaft "ListRows" des ListObjects ermitteln wie hier:
Noch als Tipps zur Hilfe während der Entwicklungsphase:
Damit du solche Fehler in Zukunft gemeldet bekommst musst du das On Error Resume Next auskommentieren. Außerdem kannst du dann im VBA-Editor mit Breakpoints und dem Einzelschritt-Modus, Zeile für Zeile den Code ausführen, so siehst du schneller wo es hakt...

Grüße Uwe
Bitte warten ..
Mitglied: a.grothe
27.11.2013 um 12:00 Uhr
Hallo Uwe, danke für die Hilfe: Aber er nimmt immer noch nur die erste Datei obwohl eine TEST und eine TEST1.xml im Verzeichnis liegen.

Sub XML_Dateien_Einlesen()
'
Dim Datei$, Pfad$, DateiMatch$
Dim AnfZelle As Range, Wb As Workbook, Ws As Worksheet
On Error Resume Next

Set Wb = ActiveWorkbook
Set Ws = Wb.ActiveSheet

Set AnfZelle = Ws.Range("A1") '<== Anfangszelle im aktiven Arbeitsblatt der aktiven Arb.Mappe

Pfad$ = "D:\_TEST\" '<== Pfad zum Verzeichnis einstellen
DateiMatch$ = "TEST*.xml" '<== Datei-Matching, um gewünschte Dateien zu filtern

Datei$ = Dir(Pfad$ & DateiMatch$, vbNormal)

counter = 1
Do Until Len(Datei$) = 0
Wb.XmlImport URL:=Pfad$ & Datei$, ImportMap:=Nothing, Overwrite:=True, Destination:=AnfZelle
Datei$ = Dir()
intNextOffset = Sheet.ListObjects(counter).ListRows.Count
Set AnfZeile = AnfZeile.Offset(intNextOffset, 0)
counter = counter + 1
Loop
End Sub
Bitte warten ..
Mitglied: colinardo
27.11.2013, aktualisiert um 12:05 Uhr
sorry, hatte eine Variable nicht an deine verwendete angepasst:
hier das "Sheet" durch dein "Ws" ersetzen:
das es so aussieht:
und vergessen nicht, wenn du die Sachen erneut importieren willst musst du erst den gesamten Range löschen
und mach das On Error Reume Next mal raus damit du eventuelle Fehler siehst !!
Grüße Uwe
Bitte warten ..
Mitglied: a.grothe
27.11.2013 um 12:23 Uhr
Danke klappt wunderbar. Mit dem Error war auch ein guter Tipp, da AnfZeile noch in AnfZelle geändert werden musste. Kann man irgendwie die Spaltenüberschriften ausblenden beim import? bzw. bei der zweiten Datei weglassen? Brauche das nur in der ersten Zeile (Kennzeichen Id Tor CreateTime SendTime CloseTime ClosedBy SendErfolg).

Kennzeichen Id Tor CreateTime SendTime CloseTime ClosedBy SendErfolg
BZ-XX 191 1 H2/ 1 2013-11-08T11:26:38.747+01:00 2013-11-08T11:30:40.531+01:00 2013-11-08T12:10:42.016+01:00 user WAHR
Kennzeichen Id Tor CreateTime SendTime CloseTime ClosedBy SendErfolg
AC-XX 4427 1 H2/ 5 2013-11-07T09:10:15.435278+01:00 2013-11-07T09:10:52.074278+01:00 2013-11-07T12:04:33.289+01:00 user WAHR
Bitte warten ..
Mitglied: colinardo
27.11.2013, aktualisiert um 13:30 Uhr
Das geht nur über einen Umweg:
Grüße Uwe
Bitte warten ..
Mitglied: a.grothe
27.11.2013 um 13:42 Uhr
Hallo Uwe,

vielen Dank. Kannst du ein Buch (eBook) empfehlen um das besser zu verstehen?
Bitte warten ..
Mitglied: colinardo
27.11.2013, aktualisiert um 13:50 Uhr
Das Script macht folgendes:
Es importiert die erste CSV-Datei normal, beim Import der zweiten wird eine neue Zeile in der ersten Tabelle erstellt und der Inhalt der zweiten Tabelle ans Ende der ersten Tabelle kopiert, danach wird das ListObject in dem die zweite CSV-Datei importiert wurde wieder gelöscht, usw. Übrig bleibt nur noch eine Tabelle mit dem kompletten Inhalt aller XML-Dateien.
Grüße Uwe
Bitte warten ..
Mitglied: a.grothe
28.11.2013 um 07:54 Uhr
Danke. Es klappt nun wunderbar. Kann man den Pfad noch so anpassen, das er auch Unterverzeichnisse durchsucht?
Bitte warten ..
Mitglied: colinardo
28.11.2013 um 10:59 Uhr
Zitat von a.grothe:
Danke. Es klappt nun wunderbar. Kann man den Pfad noch so anpassen, das er auch Unterverzeichnisse durchsucht?
Kann man, das erfordert aber einen radikalen Umbau. Ich habe die Zeilen mal kommentiert, damit du es hoffentlich besser verstehst:
Grüße Uwe
Bitte warten ..
Mitglied: a.grothe
28.11.2013 um 12:33 Uhr
Danke für die Hilfe es klappt.
Bitte warten ..
Mitglied: colinardo
28.11.2013 um 12:34 Uhr
Dann den Beitrag bitte noch als gelöst markieren. Merci.
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
VB for Applications
XML Datei auslesen mit Excel
Frage von kaiuwe28VB for Applications10 Kommentare

Hallo zusammen, ich mal wieder Leider komme ich nicht weiter. Ich möchte aus einem Ordner mit mehreren XML Dateien ...

XML
XML Datei Fehler?
Frage von Patrick-ITXML1 Kommentar

Hallo zusammen ich benutze Sysprep, um ein Image von einer Maschine zu machen und lade dieses dann auf einem ...

Batch & Shell
Powershell XML Datei aufsplitten
Frage von ITAllrounderBatch & Shell2 Kommentare

Mahlzeit zusammen, ich stehe hier gerade vor einem kleinen PowerShell Dilemma und habe keinen Ansatz. Es geht darum, dass ...

XML
XML Datei mit Powershell splitten
gelöst Frage von LianenSchwingerXML2 Kommentare

Hallo, ich habe eine riesige Exportdatei im XML-Format die ich nicht weiterverarbeiten kann. Der Aufbau ist wie folgt: Ich ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Liste ungeschützter Pulse-VPN-Server veröffentlicht

Information von Visucius vor 5 StundenErkennung und -Abwehr

bzw. Der tiefe Blick in die Profi-Administratoren-Welt ;-)

Windows 10

Windows Defender verhindert Telemetrieblocking via hosts-Datei

Information von BirdyB vor 7 StundenWindows 102 Kommentare

Für diejenigen, die keine Daten an MS senden wollten, war die hosts-Datei manchmal eine Option.

Monitoring

Unabhängiger Ansatz - IoT (frei von Cloud- oder Appzwang) - Hier mit Schaltsteckdosen

Anleitung von beidermachtvongreyscull vor 2 TagenMonitoring2 Kommentare

Tach Kollegen, ich erzähle Euch mal von meiner Ausgangslage und den/m Problem(chen) Ich benutze ein NAS zur Lagerung meiner ...

Microsoft
Microsoft Advanced Threat Protection for Linux
Information von Dani vor 4 TagenMicrosoft

Microsoft Defender Advanced Threat Protection (MD ATP) support for Linux with kernel version 3.10.0-327 or later, including the following ...

Heiß diskutierte Inhalte
Windows 10
Windows "Home" Version im Unternehmen legal?
gelöst Frage von BosnigelWindows 1023 Kommentare

Hallo, ich habe hier einen Kleinstunternehmer der überall sparen muss. Die Frage: Ist Windows 10 (also nicht Pro) für ...

Hyper-V
Hardware Empfehlung Hyper-V Host
Frage von TraxxTecHyper-V20 Kommentare

Hi, ich habe keine Ahnung was aktuell an Hardware unterwegs ist, deshalb bräuchte ich eine grobe Empfehlung für einen ...

Windows Server
Windows-NAS zum sekundären DNS-Server machen?
Frage von DanielG1974Windows Server18 Kommentare

Moin. Wer so ein bissel meine Situation meiner Arbeitsstelle kennt Mein Chef hat immer noch keinen neuen ESXi-Server angeschafft. ...

Batch & Shell
Doppelte If Anweisung - check if file exist
Frage von chkdskBatch & Shell12 Kommentare

Hello Again :-) Ich habe hier ein Skript, welches zu zu Beginn überprüft ob eine Datei vorhanden ist. Falls ...

Weniger Werbung?
Administrator Magazin
07 | 2020 In der Juli-Ausgabe beleuchtet das IT-Administrator Magazin den Themenschwerpunkt "Monitoring & Support". Darin zeigt die Redaktion unter anderem, wie Sie die Leistung von Terminalservern im Blick behalten und welche Neuerungen das Ticketsystem OTRS 8 mitbringt. Auch die Überwachung von USV-Anlagen darf nicht fehlen. In ...