Anzeige
Archiv - Navigation
1900to1904
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

VBA Arbeitsblätter zusammen fassen

VBA Arbeitsblätter zusammen fassen
27.09.2022 21:36:05
Stefanie
Hallo zusammen,
ich Versuche gerade mir die Anwendung mit VBAs näher zu bringen. Stecke aber noch in den Kinderschuhen. Und ich brauche Mal jemanden, der sich mein VBA Code ansieht. Ich habe irgendwie ein "Brett" vor dem Kopf.
Ich habe in meiner Excel Datei 4 Arbeitsblätter, die ich zusammen fassen möchte. Und bei der Zusammenfassung möchte ich die Zeilen und Spalten tauschen.
Dazu habe ich folgenden Code zusammen geschrieben.

Sub Tabelle_zusammenfassen()
Dim i As Integer
Dim Zusammenfassung As Worksheet
Dim BereichZielTab As Object
Dim rwl As Object
Set Zusammenfassung = Worksheets("Zusammenfassung")
For i = 2 To Worksheets.Count
Set BereichZielTab = Worksheets(i).UsedRange
Set rwl = Worksheets(1).Cells(Rows.Count, "A").End(xlUp)
BereichZielTab.Copy
rwl.Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Next i
End Sub
Ich komme hier aber mit dem Einfügen der Daten aus dem nächsten Arbeitsblatt nicht hin.
Er nimmt ja jetzt von der Spalte A die nächste freie Zeile. Habe ich ihm ja auch so angegeben.
Dadurch, dass ich in meinen Ausgangstabellen eine unterschiedliche Spaltenanzahl habe,
müsste er mir aber nicht von Spalte A die letzte Zeile raus suchen, sondern von Spalte XY.
Und Einfügen soll er die Daten vom nächsten Tabellenblatt aber ab Spalte A.
So das ich die Stunden der Mitarbeiter untereinander stehen habe.
Ich hoffe ihr versteht, was ich meine ☺️.
Hier die Beispieldatei:
https://www.herber.de/bbs/user/155407.xlsx
Gruß Stefanie

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Arbeitsblätter zusammen fassen
27.09.2022 22:09:26
Piet
Hallo
ich habe das Makro korrigiert, und kommentiert. Voraussetzung ist, dass die Zusammenfassung immer an 1. Stelle steht.
Ich habe die Quartaldaten alle nach oben verschoben, damit die Überschriftszeile gleich ist. Ist meines Erachtens sinnvoller!
https://www.herber.de/bbs/user/155408.xlsm
mfg Piet
AW: VBA Arbeitsblätter zusammen fassen
28.09.2022 19:46:19
Stefanie
Hallo Piet
vielen Dank. Da habe ich vielleicht etwas zu kompliziert gedacht. 😊
Ist es möglich, in der Zusammenfassung noch die Zellen und Spalten zu tauschen? So das die Mitarbeiter als Spalte angezeigt werden?
Gruß Stefanie
Anzeige
AW: VBA Arbeitsblätter zusammen fassen
28.09.2022 11:42:45
Herbert_Grom
Hallo Stefanie,
wie viele Projekte und Mitarbeiter können es max. werden?
Servus
AW: VBA Arbeitsblätter zusammen fassen
28.09.2022 19:28:58
Stefanie
Hallo
also mehr als 20 Mitarbeiter werden es nicht. Und Projekte max 10.
Das ist dann schon sehr großzügig.
Gruß Stefanie
AW: VBA Arbeitsblätter zusammen fassen
29.09.2022 09:08:25
Herbert_Grom
Schon wieder vergessen, ich soll ja immer den Code posten!

Option Explicit
Sub Tabelle_zusammenfassen()
Dim i As Long
Dim BereichZielTab As Object
Dim rwl As Object
Dim lRowIn&
With Worksheets(1)
.Columns("A:H").Delete Shift:=xlToLeft
For i = 2 To Worksheets.Count
Set BereichZielTab = Worksheets(i).UsedRange
lRowIn = .Cells(.Rows.Count, "E").End(xlUp).Row + 1
If lRowIn = 2 Then lRowIn = 1
BereichZielTab.Copy
.Range("A" & lRowIn).PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
Next i
.Columns.AutoFit
End With
End Sub
Servus
Anzeige
AW: VBA Arbeitsblätter zusammen fassen
29.09.2022 09:12:16
Herbert_Grom
Da du ja geschrieben hast, dass es bis zu 20 Mitarbeiter werden könnten, ändere bitte noch das H in W ab, in dieser Code-Zeile:

      .Columns("A:W").Delete Shift:=xlToLeft
Servus
AW: VBA Arbeitsblätter zusammen fassen
29.09.2022 09:20:55
Herbert_Grom
Hallo Stefanie,
sorry, aber es ist besser, wenn du diesen Code nimmst:

Sub Tabelle_zusammenfassen()
Dim i As Long, lRowIn&
Dim BereichZielTab As Object
Dim rwl As Object
Application.ScreenUpdating = False
With Worksheets(1)
.Columns("A:" & Chr(.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column + 64)).ClearContents
For i = 2 To Worksheets.Count
Set BereichZielTab = Worksheets(i).UsedRange
lRowIn = .Cells(.Rows.Count, "E").End(xlUp).Row + 1
If lRowIn = 2 Then lRowIn = 1
BereichZielTab.Copy
.Range("A" & lRowIn).PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
Next i
.Columns.AutoFit
End With
End Sub
Servus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige