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

Bestimmte Tabellenblätter zusammenführen mit Makro

Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 08:45:07
Lars
Guten Morgen Forumgemeinde
Ich habe eine Datei mit Tabellenblättern nach Monat, worin ich den Bestelleingang führe. In einem weiteren Blatt möchte ich nun die Monate untereinander zusammenführen.
Das Makro soll von den gewünschten Tabellenblättern den Bereich A5 bis zur letzen beschriebenen Zeile kopieren und in das erstellte Sammelblatt ab Zeile 2 untereinander einfügen.
Bei Aktualisierung soll der Inhalt des Sammelblatts (ab Zeile 2) gelöscht und neu aufgebaut werden.
Ich habe bereits einen Schnipsel, den jemand mit VBA Kenntnissen ja vielleicht anpassen kann?
Vielen Dank im Voraus für eure Mithilfe.

Private Sub CommandButton1_Click()
Dim mon(12) As String
mon(0) = "AB18"
mon(1) = "Jan"
mon(2) = "Feb"
mon(3) = "Mrz"
mon(4) = "Apr"
mon(5) = "Mai"
mon(6) = "Jun"
mon(7) = "Jul"
mon(8) = "Aug"
mon(9) = "Sep"
mon(10) = "Okt"
mon(11) = "Nov"
mon(12) = "Dez"
Dim AB As Worksheet
Set AB = Worksheets("Auftragsbestand")
Dim iZ&, iB%, iRmon&, iC&
iZ = 5
With AB
.Range("a5:k" & .Cells.SpecialCells(xlCellTypeLastCell).Row).ClearContents 'löscht den Inhalt    _
_
_
_
_
des Blattes Auftragsbestand (Spalten A-I komplett, außer Zeile 1-5)
End With
For iB = 0 To 12
With Worksheets(mon(iB))
For iRmon = 3 To .[m65536].End(xlUp).Row 'sucht im Bereich von A3 bis M65536 die letzte  _
_
_
_
_
beschrieben Zelle (das ist in diesem Fall immer das letzte x in der Spalte M)
If .Cells(iRmon, 14) = "x" Then
For iC = 1 To 8
AB.Cells(iZ, iC) = .Cells(iRmon, iC) 'Kopiert A bis H nach A-H
Next
AB.Cells(iZ, 8) = .Cells(iRmon, 9) 'kopiert G nach H
AB.Cells(iZ, 9) = .Cells(iRmon, 11) 'kopiert I nach G
AB.Cells(iZ, 10) = .Cells(iRmon, 15) 'kopiert M nach J
iZ = iZ + 1 'Variable wird für die nächste Zeile erhöht
End If
Next
End With
Next
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 09:05:29
Werner
Hallo Lars,
so:
Option Explicit
Public Sub Sammeln()
Dim loLetzteQuelle As Long, loLetzteZiel As Long
Dim Ziel As Worksheet, ws As Worksheet
Set Ziel = Worksheets("Auftragsbestand")
Application.ScreenUpdating = False
With Ziel
If .Cells(2, 1)  "" Then
loLetzteZiel = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range(.Cells(2, 1), .Cells(loLetzteZiel, 1)).ClearContents
End If
End With
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Auftragsbestand"
'nix machen
Case Else
With ws
loLetzteQuelle = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range(.Cells(5, 1), .Cells(loLetzteQuelle, 1)).Copy _
Ziel.Cells(Ziel.Cells(Ziel.Rows.Count, 1).End(xlUp).Row, 1).Offset(1)
End With
End Select
Next ws
Set Ziel = Nothing
End Sub
Hast du in deiner Mappe weitere Blätter, von denen keine Daten geholt werden sollen, dann mußt du die in der ersten Case-Anweisung mit angeben.
Case "Auftragsbestand", "ZweitesBlatt", "DrittesBlatt"
Gruß Werner
Anzeige
AW: Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 09:51:03
Lars
Hallo Werner
Sorry ich hatte mich etwas unverständlich ausgedrückt.
Das Makro zieht jetzt nur immer die Spalte A, müsste aber die Spalten A bis O ab Zeile 5 kopieren.
Zudem hat meine Mappe viele Arbeitsblätter, die ich dazu nicht benötige.
Die zu kopierenden Blätter heissen: "Jan" "Feb" "Mrz" "Apr" "Mai" "Jun" "Jul" "Aug" "Sep" "Okt" "Nov" "Dez". Und das Zielblatt heisst "AE komplett".
Gruss Lars
AW: Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 10:13:02
Werner
Hallo Lars,
dann so.
Option Explicit
Public Sub Sammeln()
Dim loLetzteQuelle As Long, loLetzteZiel As Long
Dim Ziel As Worksheet, ws As Worksheet
Set Ziel = Worksheets("AE komplett")
Application.ScreenUpdating = False
With Ziel
If .Cells(2, 1)  "" Then
loLetzteZiel = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range(.Cells(2, 1), .Cells(loLetzteZiel, 15)).ClearContents
End If
End With
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Okt", "Nov", "Dez"
With ws
loLetzteQuelle = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range(.Cells(5, 1), .Cells(loLetzteQuelle, 15)).Copy _
Ziel.Cells(Ziel.Cells(Ziel.Rows.Count, 1).End(xlUp).Row, 1).Offset(1)
End With
Case Else
'nix machen
End Select
Next ws
Set Ziel = Nothing
End Sub
Gruß Werner
Anzeige
AW: Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 10:57:46
Lars
Hallo Werner
Danke dir, das funktioniert schon ganz gut :-)
Das einzige Problem dass ich nun habe ist, dass das beim Ausführen des Makros der Inhalt von "AE komplett" nicht überschrieben wird, sondern die ganzen Blätter einfach bei der untersten Zeile angehängt werden. Also jedes mal wenn ich das Makro ausführe, habe ich alle Monate einmal mehr in meinem "AE komplett".
Schön wäre, wenn vor dem Einfügen der Daten das Tabellenblatt "AE komplett" ab Zeile 2 geleert wird".
Gruss Lars
AW: Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 11:09:40
Werner
Hallo Lars,
bei mir nicht. Mehr kann ich dazu nicht sagen, ich kenne deine Datei nicht.
Also bitte lad mal deine Mappe hier hoch.
Gruß Werner
Anzeige
AW: Bestimmte Tabellenblätter zusammenführen mit Makro
05.04.2019 11:22:37
Lars
Werner, ich kann den Fehler nach erneutem Öffnen der Mappe nicht mehr reproduzieren. Finde ich gut :-) Danke dir für deine Hilfe und geniess das Wochenende.
Lars
Gerne u. Danke für die Rückmeldung. o.w.T.
05.04.2019 11:30:52
Werner

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige