Der Code ist so ausgelegt, daß die Daten in Arbeitsblätter mit Namen der Form "Tabellex" geschrieben werden, also "Tabelle" und eine Zahl ohne Leerzeichen. Wenn Du also etwa eine "Tabelle 2" mit einem Leerzeichen vor der Zahl hast, wird diese nicht benutzt. Es wird eine "Tabelle2" stattdessen angelegt. Außerdem wird die Tabellenzahl aufsteigend durchlaufen. Wenn Du also eine Tabelle1, Tabelle2, Tabelle5 und Tabelle9 hast, werden die dazwischen liegenden Tabellen "Tabelle3, Tabelle4" etc. angelegt bevor die Tabelle5 benutzt wird. Wenn Du der Ansicht bist, daß vorhandene Tabelle nicht genutzt werden, prüfe bitte mal die gesamte Tabelle, ob nicht doch irgendwo was drinsteht! Es kommt nämlich vor, daß vor dem ersten Text eine Unmenge Leerzeilen vorhanden sind.
Das ist auch das Problem, wenn Du alle Daten in eine Tabelle schreibst: Das Programm sucht dann nach der ersten freien Zeile. Oft steht in der letzten genutzten Zeile irgendein unnötiges Zeichen und vorher sind dutzende oder gar hunderte Leerzeilen. Das also bitte beachten, wenn Du den folgenden Code benutzt.
Severus
Sub Import_ein_blatt()
Dim Dialog As FileDialog
Dim vrtSelectedItem As Variant
Dim lngNaechsteZeile As Long
Dim strZielBlatt As String
Dim rngZielBereich As Excel.Range
Dim WS As Excel.Worksheet
On Error Resume Next
Set Dialog = Application.FileDialog(msoFileDialogOpen)
With Dialog
.AllowMultiSelect = True
.Title = "Bitte gewünschte Daten auswählen"
.ButtonName = "Importieren"
.Show
If .SelectedItems.Count = 0 Then
Exit Sub
End If
strZielBlatt = "Tabelle1"
Set WS = Sheets(strZielBlatt)
If Err.Number <> 0 Then
Err.Clear
Set WS = Sheets.Add(, Sheets(Sheets.Count))
WS.Name = "Tabelle1"
End If
lngNaechsteZeile = 6
For Each vrtSelectedItem In .SelectedItems
Set rngZielBereich = WS.Range("$A$" & CStr(lngNaechsteZeile))
ActiveWorkbook.XmlImport URL:=vrtSelectedItem, ImportMap:=Nothing, Overwrite:=False, Destination:=rngZielBereich
Set rngZielBereich = Nothing
lngNaechsteZeile = WS.Cells(WS.Cells.Rows.Count, 1).End(xlUp).Row + 1
Next
End With
Set WS = Nothing
End Sub
|