Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Erstellen neuer Dateien mit Autofilter

Erstellen neuer Dateien mit Autofilter
18.11.2021 23:10:58
Damir
Hallo zusammen,
erst einmal möchte ich erwähnen, dass ich neu bin und daher noch nicht so vertraut bin mit der Art und Weise, wie ich am besten eine Frage im Forum korrekt platziere. Bitte daher um Verständnis :)
Ich habe folgendes Anliegen:
Ich habe personenbezogene Daten in eine Excel-Tabelle ausgelagert und möchte nun mit Hilfe von VBA und Autofilter eigene Dateien pro Sachbearbeiter erzeugen und diese auch so benennen. Zum Beispiel habe ich nach dem Sachbearbeiter 207 gefiltert und ausgelagert, dann soll die Datei unter einem bestimmten Pfad (am besten wird der Nutzer durch ein Pop up gefragt, wo die Datei abgespeichert werden soll) und mit dem Dateinamen 207.xlsx als Einzeldatei abgespeichert werden.
Ich habe es bereits hinbekommen, wie ich einen AutoFilter setze und nach einem bestimmten Wert filtere und diese Daten in ein eigenes Tabellenblatt auslagern kann. Mein Problem besteht darin, dass je nach Tabelle die Einträge in der Spalte Sachbearbeiter variieren können. Es kann also vorkommen, dass es 4 verschiedene Sachbearbeiter gibt und ich nach Ausführung des Makros 4 Dateien erwarte oder aber es sind 100 verschiedene Sachbearbeiter und somit 100 verschiedene Einzeldateien erzeugt werden sollen.
Wie kann ich also das Setzen des Filters automatisieren, sprich nimm alle Werte aus Spalte D entferne die Duplikate und beginne nun zu Filtern. Erstelle die Einzeldatei mit dem Dateinamen des Zellenwerts.
Geht das über ein Array? Oder muss ich die Spalte vorher manuell auslagern die Duplikate mitgeben und dann das Array befüllen?
Ich habe meine Beispieldatei hochgeladen: https://www.herber.de/bbs/user/149243.xlsm
Das Idealbild wäre:
Makro wird ausgeführt, der Anwender wird nach dem Pfad gefragt und kann zum Ablageort navigieren, bestätigt diesen durch einen Klick auf Speichern und die Einzeldateien werden erzeugt samt Inhalt und Dateiname.
Ich hoffe es ist verständlich ausgedrückt. :) Ich erwarte natürlich nicht, dass mir einer den fertigen Code schickt, sondern möchte wissen, ob das umsetzbar ist und ich nicht auf dem Holzweg bin :)
Vielen Dank!
VG Damir

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erstellen neuer Dateien mit Autofilter
19.11.2021 06:44:04
ralf_b
Moin,
so wie du beschreibst , gibt es das schon. ich weis grad nur nicht wo.

die Spalte vorher manuell auslagern die Duplikate.. 
...entfernen, mittels currentregion die eindeutigen Werte in ein Array, dies dann per Schleife abarbeiten und jeweils die Tabelle filtern. Ergebnis in anderes Blatt oder Mappe und speichern.
AW: Erstellen neuer Dateien mit Autofilter
19.11.2021 08:27:11
Michael
Hallo Damir,
die Datei hier
https://www.herber.de/bbs/user/149244.xlsm
wird von ihrem Makro in einzelne Dateien zerlegt. Bei wir waren es Landkreise. 25.000 Zeilen. Deine Sachbearbeiter - Nummer oder Name - müssen in Spalte B stehen, nach dieser Spalte müssen die Daten sortiert sein. Spalte A nicht mitsortieren, dort werden die Daten nummeriert, die Spalte braucht das Makro. Geht sicher alles "informatischer", funzt aber ;-)
Die Dateien heißen am Ende so wie in Spalte B eingetragen.
Den Speichern-Unter-Dialog müsstest Du Dir selber einbauen.
Grüße
Michael
Anzeige
AW: Erstellen neuer Dateien mit Autofilter
19.11.2021 08:47:54
Michael
Das hat mich jetzt selber interessiert...
Das Makro mit Ordner-Auswahl-Dialog (nicht Speichern unter...). Vorlage von hier: https://wellsr.com/vba/2016/excel/vba-select-folder-with-msoFileDialogFolderPicker/

Sub eineDateiJeLandkreis()
Dim i As Integer
Dim countData As Integer
Dim countLK As Integer
Dim startPos As Integer
Dim endPos As Integer
Dim Landkreis As String
Dim sFolder As String
i = 2
countData = Sheets(1).UsedRange.Rows.Count
countLK = 1
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then ' if OK is pressed
sFolder = .SelectedItems(1)
End If
End With
'MsgBox countData
Do
startPos = i
Landkreis = Range("B" & i).Value
While Range("A" & i) = countLK
i = i + 1
Wend
endPos = i - 1
Rows(startPos & ":" & endPos).Copy 'Destination:=Workbooks.Add ...?
Workbooks.Add
With ActiveWorkbook ' die eben neu erzeugte Datei, nicht dieser hier, in der das Makro läuft
.Sheets(1).Rows(1).Value = ThisWorkbook.Sheets(1).Rows(1).Value ' die Überschrift
Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False  ' die Daten
Application.CutCopyMode = False
If sFolder  "" Then
.SaveAs Filename:=sFolder & "\" & Landkreis & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Else
.SaveAs Filename:="C:\temp\" & Landkreis & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End If
.Close
End With
countLK = countLK + 1
Loop Until i > countData
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige