@Werner
13.12.2004 08:41:27
UweD
Deine Frage: Vorhandene Tabellenblätter vor Import des gleichen Namens erst löschen..
Bitte:
Gruß UweD
Sub Tabelle_Importieren()
Dim dlg As FileDialog
Dim si As Variant
Set dlg = Application.FileDialog(msoFileDialogOpen) 'Datei wählen
With dlg
.AllowMultiSelect = True 'der User darf mehrere Dateien auswählen
.InitialFileName = "*.xls"
.InitialView = msoFileDialogViewDetails 'Anzeige des Dialogs
.Title = "Tabelle importieren" 'Titel halt
End With
If dlg.Show = True Then
Frage = MsgBox("Sollen die Dateien nach Import gelöscht werden?", vbYesNo)
Application.ScreenUpdating = False
For Each si In dlg.SelectedItems 'jede ausgewählte Datei wird bearbeitet
Workbooks.Open Filename:=si
For Each TB In Sheets 'jedes Tabellenblatt der Datei wird importiert
For Each TBB In ThisWorkbook.Sheets
If TBB.Name = TB.Name Then ' Tabellenname shon vorhanden?
Application.DisplayAlerts = False
TBB.Delete ' Schon vorhandenes Tabellenblatt wird vorher gelöscht
Application.DisplayAlerts = True
Exit For
End If
Next
TB.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next
Workbooks(Dir(si)).Close savechanges = False
If Frage = vbYes Then Kill si
Next
End If
Application.ScreenUpdating = True
End Sub