VBA Programmierung
14.07.2022 14:23:24
Paul
ich habe folgendes Problem.
Wir bekommen halbjährlich eine Excel Datei mit ca. 1000 Einträgen, welche ich gerne nach Namen filtern und anschließend diese gefilterterten Daten in einzelne Excel Dateien speichern wollen würde.
So weit klappt auch alles wie oben beschrieben mit Makros (welche leider manuell eingerichtet werden müssen).
Beispiel: Makro 1:
Option Explicit
Sub Autofilter()
Tabelle2.Range("A5").Autofilter
Tabelle2.Range("A5").Autofilter Field:=4, Criteria1:="Paul"
Dim ws As Worksheet
Set ws = Worksheets.Add
With ws
.Name = "Paul"
End With
Tabelle2.UsedRange.SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("A2")
End Sub
Beispiel Makro 2
Option Explicit
Sub Autofilter()
Tabelle2.Range("A5").Autofilter
Tabelle2.Range("A5").Autofilter Field:=4, Criteria1:="Tim"
Dim ws As Worksheet
Set ws = Worksheets.Add
With ws
.Name = "Tim"
End With
Tabelle2.UsedRange.SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("A2")
End Sub
Beispiel Makro 3:
Sub anfang()
Dim ws As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
For Each ws In wb.Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=wb.Path & "\" & ws.Name
ActiveWorkbook.Close
Next
End Sub
In dem Beispiel werden die gefilterten Daten für "Paul" und "Tim" jeweils in einer separaten Datei gespeichert.
Da sich die Namen immer wieder ändern können, und es hier ca 60 verschiedene Module benötigt, welche in einem separaten Skript nacheinander ausgeführt werden, wäre es super wenn für jeden Namen eine Excel Datei entsehen würde.
Kann mir hier jemand helfen, eine Schleife oder eine Art Array zu schreiben?
Für Hilfe wäre ich sehr dankbar.