AW: Dynamische range festlegen
24.02.2017 18:40:54
Philipp
Hi Daniel,
theoretisch hast du recht und ich sollte deine Loesung adaptieren koennen, inde rPraxis klappt das leider nicht.
Also mein Ziel ist es aus einer dynamischen Liste (wie oben erklaert), in einer anderen Datei Tabellenblaetter zu erstellen. Diese sollen mit dem Listeninhalt gefuellt werden. Jedoch soll nicht die ganze Liste in Tabellenblaetter umgewandelt werden, sondern nur festgelegte. Die Methode deletesheets ist nur da um die Standard Tabellenblaeter zu loeschen. Mein aktuelles Problem ist, dass immer die komplette Liste in Tabellenblaetter umgewandelt wird (auch mit deinem Loesungsvorschlag). Denek aber, dass ich Ihn falsch umsetze.
Hier mein ganzer Code ohne deinen Vorschlag. Theoretisch geht es nur darum den Code and der richtigen Stelle einzuseten...
Option Explicit
Global wkb As Workbook
Global ws As Worksheets
Sub main()
Range("A1:A29").Select
Selection.Copy
'add new file
Set wkb = Workbooks.Add
Range("A1").PasteSpecial
'rename file
wkb.SaveAs Environ("UserProfile") & "\Desktop\" & "Commission" & Format(Now, "YYYYMMDD_hhmm" _
) & ".xlsx"
Call createSheets
Call deleteWorksheets
wkb.Close True
End Sub
Sub deleteWorksheets()
'delete Sheet1,2,3
Application.DisplayAlerts = False
Worksheets("Sheet1").Delete
Worksheets("Sheet2").Delete
Worksheets("Sheet3").Delete
Application.DisplayAlerts = True
End Sub
Sub createSheets()
Dim Bereich As Range
Dim Zelle As Range
Dim Tabelle As Worksheet
' fill workbook with named sheets
For Each Zelle In Sheet3.Range("A5").CurrentRegion
With ActiveWorkbook
Set Tabelle = .Sheets.Add(After:=.Sheets(.Sheets.Count))
End With
Tabelle.Name = Zelle.Value
Next Zelle
End Sub
Vielen Dank!!
VG Philipp