Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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

1 Blatt in mehrere neu erstellte Blätter kopieren

1 Blatt in mehrere neu erstellte Blätter kopieren
20.04.2016 15:38:58
K.
Hallo Excel-Fans,
ich habe folgenden VBA-Code und komme bei einer Sache nicht weiter:
Private Sub Workbook_Open()
Worksheets("countries").Columns(1).ClearContents
Dim source As Range
Dim target As Range
Set source = Range("[CeBIT.xlsx]Source!countries")
Set target = Range("A1")
source.EntireColumn.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=source.EntireColumn, CopyToRange:=target, Unique:=True
Rows("1:2").Delete
Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending
Application.DisplayAlerts = False
For Each ws In Worksheets
If ws.Name  "countries" Then ws.Delete
Next
Application.DisplayAlerts = True
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("countries").Range("A1")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = MyCell.Value
Next MyCell
Worksheets("countries").Activate
End Sub

Das Makro hat am Ende neue Blätter erstellt, benannt nach Namen aus einer Liste. Das erste Tabellenblatt in der Datei x ist statisch und heißt "countries", alle anderen Blätter (65 Stück) sind neu.
Nun will ich in jedes dieser neuen Blätter ein bestimmtes ganzes Tabellenblatt aus einer anderen Datei y kopieren , aber gefiltert. Das heißt, dass er die ersten beiden ganzen Zeilen (header) und zusätzlich alle anderen ganzen Zeilen nehmen soll, die das gesuchte Land in der Spalte J ab J3 in dem Quellentabellenblatt in der Datei y enthalten. Das heißt, dass er in der Datei y nach dem Tabellenblattnamen des neue erstellten Tabellenblattes in der Datei x filtern muss.
Wie schaffe ich das?

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
20.04.2016 16:17:13
ChrisL
Hi
Wir sehen ja leider nicht in deine Datei rein, darum einfach mal so irgendwas...
https://www.herber.de/bbs/user/105114.xlsm
https://www.herber.de/bbs/user/105115.xlsx
Sub Mach()
Dim WB1 As Workbook, WB2 As Workbook
Dim WS1 As Worksheet, WS2 As Worksheet
Dim tempWS As Worksheet
Dim iZeile As Long
Application.ScreenUpdating = False
Set WB1 = ThisWorkbook
Set WB2 = Workbooks.Open(WB1.Path & "\Mappe2.xlsx") 'anpassen
Set WS1 = WB1.Worksheets("countries")
Set WS2 = WB2.Worksheets("Tabelle1")
On Error GoTo ErrorHandler
Application.DisplayAlerts = False
For Each tempWS In WB1.Worksheets
If tempWS.Name  "countries" Then tempWS.Delete
Next tempWS
Application.DisplayAlerts = True
For iZeile = 3 To WS1.Cells(WS1.Rows.Count, 10).End(xlUp).Row
WS2.Copy After:=WB1.Worksheets(WB1.Worksheets.Count)
Set tempWS = WB1.Worksheets(WB1.Worksheets.Count)
tempWS.Name = WS1.Cells(iZeile, 10)
tempWS.Range("A1:B" & tempWS.Cells(tempWS.Rows.Count, 1).End(xlUp).Row).AutoFilter _
Field:=1, Criteria1:=WS1.Cells(iZeile, 10)
Next iZeile
WB2.Close
Exit Sub
ErrorHandler:
Application.DisplayAlerts = True
MsgBox "Fehler"
End Sub

cu
Chris

Anzeige
AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
20.04.2016 16:36:38
K.
Danke für die Antwort, aber ich werde leider nicht schlau daraus.
Ich habe die Datei mal angehängt: https://www.herber.de/bbs/user/105117.xlsm
Kann man nicht einfach den Weg gehen, das Tabellenblatt aus der Quelldatei in alle Blätter (außer der ersten) der Zieldatei zu kopieren und dann alle Zeilen, die nicht den Namen des jeweiligen Tabellenblattes der Zieldatei in Spalte J enthalten, zu löschen?

AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
20.04.2016 16:40:03
ChrisL
Und ich werde weder aus der Beispieldatei noch aus deiner Beschreibung schlau, sorry...

AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
20.04.2016 17:00:16
K.
Sorry, mein Fehler. Natürlich sieht das Ganze ohne Quelldatei bei Dir anders aus.
Hier sind beide Dateien nochmal: https://www.herber.de/bbs/user/105119.zip

Anzeige
AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
20.04.2016 17:42:50
ChrisL
Ich kann leider keine Zip-Downloaden, blöd aber ist nicht zu ändern... müsstest zwei separate Uploads machen.

AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
21.04.2016 08:45:40
ChrisL
Hi
Datei A ist leider immer noch leer, aber geht auch ohne.
Sub Mach()
Dim WB1 As Workbook, WB2 As Workbook
Dim WS1 As Worksheet, WS2 As Worksheet
Dim tempWS As Worksheet
Dim iZeile As Long
Application.ScreenUpdating = False
Set WB1 = ThisWorkbook
Set WB2 = Workbooks.Open(WB1.Path & "\Source.xlsx") 'anpassen
Set WS1 = WB1.Worksheets("countries")
Set WS2 = WB2.Worksheets("Source")
On Error GoTo ErrorHandler
Application.DisplayAlerts = False
For Each tempWS In WB1.Worksheets
If tempWS.Name  "countries" Then tempWS.Delete
Next tempWS
Application.DisplayAlerts = True
For iZeile = 3 To WS2.Cells(WS1.Rows.Count, 10).End(xlUp).Row
If WorksheetFunction.CountIf(WS2.Range("J1:J" & iZeile - 1), WS2.Cells(iZeile, 10)) = 0  _
Then
WS2.Copy After:=WB1.Worksheets(WB1.Worksheets.Count)
Set tempWS = WB1.Worksheets(WB1.Worksheets.Count)
tempWS.Name = WS2.Cells(iZeile, 10)
tempWS.Range("A2:K" & tempWS.Cells(tempWS.Rows.Count, 10).End(xlUp).Row).AutoFilter _
Field:=10, Criteria1:=WS2.Cells(iZeile, 10)
End If
Next iZeile
WS1.Select
WB2.Close
Exit Sub
ErrorHandler:
Application.DisplayAlerts = True
MsgBox "Fehler"
End Sub
Beide Dateien müssen im gleichen Ordner gespeichert sein oder du musst den Pfad "ThisWorkbook.Path" anpassen.
cu
Chris

Anzeige
AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
21.04.2016 09:54:57
K.
Ich danke Dir vielmals Chris!

AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
21.04.2016 10:21:46
K.
Noch eine Zusatzfrage: Kann man die Blätter auch am Ende alphabetisch sortieren lassen?
Mit folgendem Code klappt es leider nicht:
Dim i As Long
Dim r As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets.Add(Before:=Worksheets(1))
With ThisWorkbook
For i = 4 To .Worksheets.Count
ws.Cells(i - 3, 1) = .Worksheets(i).Name
Next
Set r = ws.Range("A1").Resize(i - 4)
r.Sort Key1:=Columns(1), Header:=xlNo
For i = 1 To r.Count
.Worksheets(r.Cells(i, 1).Value).Move After:=.Worksheets(.Worksheets.Count)
Next
Application.DisplayAlerts = False
ws.Delete
End With

Anzeige
AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
21.04.2016 10:23:25
K.
.... ohne das erste Arbeitsblatt "countries" mitzusortieren ....

AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
21.04.2016 10:28:01
ChrisL
Hi
Blätter sortieren ist ziemlich umständlich. Besser du sortierst die Liste Source nach Ländern, dann müsste anschliessend auch die Blattfolge stimmen.
cu
Chris

AW: 1 Blatt in mehrere neu erstellte Blätter kopieren
21.04.2016 11:11:57
K.
Hab's hinbekommen! Danke nochmals für deine Hilfe!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige