Hallo Leute ich bin ziemlicher VBA Leihe und steh vor einer rießigen Aufgabe.
Ich bin jedem unendlich dankbar, der mir nur ein wenig weiterhelfen kann.
Zunächst einmal wär es cool, wenn Ihr meinen Code auf Fehler überprüfen könntet und mir dann den ein oder anderen Tipp geben könntet wie ich das Ding zuende bringen könnte.
Tausend Dank!
Wie das Thema soll mit einer variablen Anzahl an Tabellenblätter gewisse Abläufe automatisiert werden:
1. Füge soviele Tabellenblätter ein, wie es im Eingabeblatt in der Spalte E2 angezeigt wird und benenne diese so wie sie in Spalte E2 benannt sind!
2. Wähle alle neu eingefügten Tabellenblätter aus (also bis auf die Ersten beiden: Das Eingabeblatt(1) und das Datenblatt(2)
3. In die Ausgewählten Tabellenblätter soll jeweils das Datenblatt(2) komplett eingefügt werden
4. Dieses Datenblatt soll nun in jeder der neu angelegten Tabellenblätter nach den Kriterien gefiltert werden, wie sie im Eingabeblatt (z.B. Spalte F) festgelegt sind.
Z.B.: Filtere das erste neue Tabellenblatt in der Spalte B nach 0/1 -> 1 soll angezeigt werden
Filtere das erste neue Tabellenblatt in der Spalte C nach Jahren zwischen 1900 - 1945
Filtere das erste neue Tabellenblatt in der Spalte D nach 0- 40
Bilde für die übrig gebliebenen Zeilen den Durchschnitt und Anzahl aus Spalte E
5. Für jedes Filterergebnis soll jeweils die Anzahl und der Durchschnitt gebiltet werden
6. Diese Ergebnisse (Anzahl und Durchschnitt) sollen wiederum aus allen neu angelegten Tabellenblätter in einem Tabellenblatt an dritter Stelle der Mappe zusammengefasst werden
Vielen Dank für eure Hilfe.
Mit freundlichen Grüßen
Euer GISspezi
Sub Makro1_kopieren_von_Datenblättern()
'
' Makro1_kopieren_von_Datenblättern Makro
'
' Tastenkombination: Strg+a
'
'
'Füge soviele Tabellenblätter ein, wie es im Eingabeblatt in der Spalte E2 angezeigt wird und benenne diese so wie sie in Spalte E2 benannt sind!
'
Dim Zelle As Range
Sheets("Eingabeblatt").Activate
Range(Range("E2"), _
Selection.SpecialCells(xlLastCell)).Select
For Each Zelle In Selection
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Zelle.Value
Next Zelle
'
'Wähle alle neu eingefügten Tabellenblätter aus (also bis auf die Ersten beiden: Das Eingabeblatt(1) und das Datenblatt(2)
'
Dim e As Long
Dim i As Integer
Dim TabArray() As Long
i = ThisWorkbook.Worksheets.Count
ReDim TabArray(1 To i - 2)
For e = 3 To i
TabArray(e - 2) = e
Next e
ThisWorkbook.Worksheets(TabArray).Select
'
'In die Ausgewählten Tabellenblätter soll jeweils das Datenblatt(2) komplett eingefügt werden
'
Dim Worksheet As Worksheet
For Each Worksheet In Selection
Worksheets("Datensatz_Passau").UsedRange.Copy _
Destination:=Worksheets(Selection).Range("A1")
Application.CutCopyMode = False
Next Worksheet
'
'Dieses Datenblatt soll nun in jeder der neu angelegten Tabellenblätter nach den Kriterien gefiltert werden, wie sie im Eingabeblatt (z.B. Spalte F) festgelegt sind
'
'
'Für jedes Filterergebnis soll jeweils die Anzahl und der Durchschnitt gebiltet werden
'
'
'Diese Ergebnisse (Anzahl und Durchschnitt) sollen wiederum aus allen neu angelegten Tabellenblätter in einem Tabellenblatt an dritter Stelle der Mappe zusammengefasst werden
'
End Sub
|