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

XML zu Excel mit Vba

XML zu Excel mit Vba
12.03.2020 14:14:15
Thorben
Hallo nochmal.
Ich habe da so ein Excel Projekt bei dem ich einige XML Files einlesen und auswerten muss. Klappt auch alles wunderbar. Das Problem ist dass ich immer den ganzen Ordner einlese in dem die Dateien enthalten sind.
Ich soll das jetzt aber so umschreiben dass ich diese von hand auswählen kann, da die Dateien in dem Ordner wohl doch ein bisschen mehr sein könnten als die 10 stück die mir bis jetzt zur Verfügung gestellt wurden.
Hier ist der Code mit dem ich bisher gearbeitet habe:
Sub From_XML_To_XL()
Dim xmlWb As Workbook, xSWb As Workbook, xStrPath$, xfdial As FileDialog, _
xFile$, lr%, first As Boolean, r As Range, p As PivotTable
first = True
Set xfdial = Application.FileDialog(msoFileDialogFolderPicker)
xfdial.AllowMultiSelect = False
xfdial.Title = "Select a folder"
If xfdial.Show = -1 Then xStrPath = xfdial.SelectedItems(1) & ""
If xStrPath = "" Then Exit Sub
Application.ScreenUpdating = False
Set xSWb = ThisWorkbook
xSWb.Sheets(3).Cells.Clear
xSWb.Sheets(2).Activate
lr = xSWb.ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row    ' last used row, column A
xFile = Dir(xStrPath & "\*.xml")
Do While xFile  ""
Set xmlWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
If first Then
Set r = xmlWb.Sheets(1).UsedRange                       ' with header
Else
xmlWb.Sheets(1).Activate
Set r = ActiveSheet.UsedRange
Set r = Range(Cells(3, 1), Cells(r.Rows.Count, r.Columns.Count))
End If
r.Copy xSWb.ActiveSheet.Cells(lr + 1, 1)
lr = xSWb.ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row
xmlWb.Close False
first = False
xFile = Dir()
Loop
xSWb.Sheets(1).Activate
For Each p In ActiveSheet.PivotTables
p.RefreshTable
Next p
Application.ScreenUpdating = True
xSWb.Save
MsgBox "End of code."
Exit Sub
ErrHandler:
MsgBox "Error!"
End Sub
Wichtig zu erwähnen ist das ich wirklich nur das Einfügen der XML Dateien geändert haben müsste da es wichtig zur weiteren verarbeitung ist dass die Dateien in einer einzelnen Tabelle landen.
Ich hoffe ihr könnt mir helfen.
Thorben

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XML zu Excel mit Vba
12.03.2020 14:55:17
snb
Wenn du die eingelesene Dateien löscht (oder verschiebst in ein anderen Folder) brauchst du kein Wahl zu machen. Dann läuft das Makro viel schneller.
AW: XML zu Excel mit Vba
12.03.2020 15:01:31
Thorben
Das ist zwar gut zu wissen hilft mir bei meinem Problem aber nicht wirklich :c

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige