Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1728to1732
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

[Excel] Tabelle per VBA splitten

[Excel] Tabelle per VBA splitten
03.01.2020 01:56:00
Stefan
Hallo,
ich habe den unten angegebenen Code gefunden, mit dem ich eine Tabelle in einzelne Dateien splitte. Das Skript greift bisher immer auf die Spalte A zu, wenn es einen Namen für die neue Datei anlegen will. Ich würde aber gerne eine andere Spalte für die Generierung des Namens verwendet wird (zum Beispiel Spalte B).
Ursprünglicher Code:
Sub Splitten_nach_ref_start()
Dim MyDic As Object, rng As Range, Zelle As Range, ws As Worksheet, wb As Workbook
Application.ScreenUpdating = False
Set MyDic = CreateObject("Scripting.Dictionary")
Set ws = ActiveSheet
With ws
Set rng = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
For Each Zelle In rng.Offset(1, 0)
If MyDic(Zelle.Value) = "" And Not IsEmpty(Zelle) Then
MyDic(Zelle.Value) = 1
rng.AutoFilter field:=1, Criteria1:=Zelle
Set wb = Workbooks.Add
.UsedRange.SpecialCells(xlCellTypeVisible).Copy wb.Sheets(1).Cells(1, 1)
wb.SaveAs Filename:=ThisWorkbook.Path & "\ref\" & Zelle & ".xlsx", FileFormat:= _
51
wb.Close False
rng.AutoFilter
End If
Next
End With
Application.ScreenUpdating = True
End Sub
Verändere ich den Code wie folgt:
Set rng = .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp))
Es wird zwar die Spalte B für die Generierung des Namens verwendet, aber es werden keine Werte mehr aus der Tabelle in die neue Datei eingefügt.
Hat jemand eine Idee, wo ich noch einen Fehler im Code habe?
Vielen Dank
Stefan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [Excel] Tabelle per VBA splitten
03.01.2020 05:08:48
Luschi
Hallo Stefan,
Schuld ist danndiese Zeile:
rng.AutoFilter Field:=1, Criteria1:=Zelle(.Value)
Hier wird der Filter auf die Spalte 1 (A) gesetzt, den Filterwert aber aus der Spalte 2 (B) genommen.
Das ist so, als ob Du Urlaub in Frankreich machen willst, aber zur Vorbereitung einen Volkshochschulkurs für spanisch besuchst.
Gruß von Luschi
aus klein-Paris
.
AW: [Excel] Tabelle per VBA splitten
06.01.2020 20:31:20
Stefan
Entschudligung für die verspätete Rückmeldung.
Der Tipp hat mir sehr gut geholfen, jetzt werden wieder alle Werte vollständig ausgegeben.
Vielen Dank
Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige