Ich habe folgendes Problem und hoffe, dass ihr mir helfen könnt:
Ich habe ein Workbook mit über 50 Sheets und habe mir dazu nun eine UserForm eingerichtet, bei der ich über eine ListBox mehrere Sheets auswählen kann und über zwei TextBoxen Name und Pfad zum speichern der neu anzulegenden Datei eingeben kann.
Ziel ist es, dass ein neues Workbook mit dem Namen aus der TextBox im angegebenen Pfad gespeichert wird und dann die (mehreren!) ausgewählten Sheets in dieses neue Workbook hineingespeichert werden.
Wenn ich den Code laufen lasse, kommt eine Fehlermeldung: Indes ausserhalb des gültigen Bereichs.
Die Datei wurde erstellt, und das erste in der ListBox angewählte Sheet auch hineinkopiert. Die weiteren Sheets fehlen aber...
Hier ist mein Code. Könnt ihr mir sagen, was ich falsch gemacht habe?
Private Sub CommandButton4_Click()
Dim wbk As Workbook
Workbooks.Add
Set wbk = ActiveWorkbook
wbk.SaveAs TextBox1.Text & "\" & TextBox2.Text & ".xlsx"
With ListBox1
For i = 0 To ListBox1.ListCount - 1
If .Selected(i) Then
Workbooks("Template_KST_Übersicht_2014_Bericht_erstellen_Test").Activate
Sheets(.List(.ListIndex)).Copy After:=Workbooks(TextBox2.Text & ".xlsx").Sheets(i)
wbk.Close savechanges = False
End If
Next
End With
End Sub
Private Sub UserForm_Initialize()
TextBox1.Text = ThisWorkbook.Path
TextBox2.Text = "Dateiname"
With Me.ListBox1
.Clear
For Each blatt In ActiveWorkbook.Sheets
If blatt.Visible = xlSheetVisible Then
.AddItem blatt.Name
End If
Next
End With
End Sub