Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1756to1760
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

Separieren in Mappe - Makro

Separieren in Mappe - Makro
08.05.2020 09:23:29
Noob
Hallo zusammen,
vor einiger Zeit habe ich hier ein Makro gefunden, dass SeparierenInMappe heisst.
Bisher hat es auch gut gearbeitet. Allerdings scheint mit der Version 2016 eine Änderung an den Autofiltern vorgenommen worden zu sein.
D.h. die Erzeugung von den einzelnen Dateien funktioniert, allerdings sind immer alle Daten in den Ergebnisdateien enthalten.
Wie muss das Makro abgeändert werden, damit es wieder funktioniert?
Hier das Makro https:\/\/www.herber.de/bbs/user/137362.txt
Oder direkt:
Sub SeparierenInMappe()
Dim v, D As Object, wb As Workbook
Application.ScreenUpdating = False
Set D = CreateObject("scripting.dictionary")
With Tabelle1 'ggf. ANPASSEN !!!!
If .AutoFilterMode Then .AutoFilterMode = False
With .Range("A1").CurrentRegion
For Each v In .Columns(1).Offset(1).Value
If v  "" Then D(v) = 0
Next
For Each v In D.Keys
Set wb = Workbooks.Add(xlWBATWorksheet)
.AutoFilter 1, v
.Copy wb.Sheets(1).Cells(1)
With wb.Sheets(1)
.Name = v
.PageSetup.FitToPagesTall = 1
.PageSetup.FitToPagesWide = 1
.Cells.Font.Name = "Calibri"
.Cells.Font.Size = 11
.UsedRange.EntireColumn.AutoFit
End With
wb.SaveAs .Parent.Parent.Path & "\" & v & ".xlsx", xlOpenXMLWorkbook
wb.Close False
Next
.AutoFilter
End With
End With
MsgBox "Finished!"
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispieldatei?
08.05.2020 10:10:36
Tino
Hallo,
eine Beispieldatei wo es nicht geht wäre gut.
Gruß Tino
zum testen
08.05.2020 11:44:57
Tino
Hallo,
könnte damit zusammenhängen, weil nur die Tabelle kopiert wird.
Warum das so ist, kann ich auch nicht sagen!
Habe jetzt versucht den Bereich um eine Zeile zu erweitern.
Versuch mal so.
.Resize(.Rows.Count + 1).Copy wb.Sheets(1).Cells(1)

Gruß Tino
Noch eine Variante
08.05.2020 12:09:55
Tino
Hallo,
Sub SeparierenInMappe()
Dim v, D As Object, wb As Workbook, LO As ListObject
Application.ScreenUpdating = False
Set D = CreateObject("scripting.dictionary")
With Tabelle1 'ggf. ANPASSEN !!!!
Set LO = .ListObjects(1)
If .AutoFilterMode Then .AutoFilterMode = False
With .Range("A1").CurrentRegion
For Each v In .Columns(1).Offset(1).Value
If v  "" Then D(v) = 0
Next
For Each v In D.Keys
Set wb = Workbooks.Add(xlWBATWorksheet)
.AutoFilter 1, v
LO.HeaderRowRange.Copy wb.Sheets(1).Cells(1, 1)
LO.DataBodyRange.Copy wb.Sheets(1).Cells(2, 1)
With wb.Sheets(1)
.Name = v
.PageSetup.FitToPagesTall = 1
.PageSetup.FitToPagesWide = 1
.Cells.Font.Name = "Calibri"
.Cells.Font.Size = 11
.UsedRange.EntireColumn.AutoFit
End With
wb.SaveAs .Parent.Parent.Path & "\" & v & ".xlsx", xlOpenXMLWorkbook
wb.Close False
Next
.AutoFilter
End With
End With
MsgBox "Finished!"
End Sub
Gruß Tino
Anzeige
AW: Noch eine Variante
08.05.2020 12:31:49
Noob
Wow!
Vielen lieben Dank Tino!
Das sieht schon super aus!
Ich werde nochmal weiter testen.
Viele Grüße
Noob

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige