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

Benötige Makro: Zusammenführen von Tabellblättern

Benötige Makro: Zusammenführen von Tabellblättern
10.04.2015 10:31:15
Tabellblättern
Hallo,
ich hoffe ihr könnt mir weiterhelfen! Und zwar benötige ich ein Makro für die folgende Situation:
Ich habe eine Exceldatei mit mehreren Tabellenblättern. Im ersten Blatt sind die Basisdaten für Drop-Down-Listen hinterlegt. In der zweiten würde ich gerne eine Auswertung der dritten machen.
Im dritten Tabellenblatt würde ich gerne die Daten, welche zwischen Tabellenblatt 4 und zum Beispiel 15 liegen sammeln. Die Daten sollen untereinander geschrieben werden. Alle diese Tabellen sind gleich aufgebaut und werden von meinen Kollegen fortlaufend gepflegt. Es handelt sich um eine Stundenliste. Wenn möglich Zeile 1 auslassen, da ich hier nur die Spaltentitel eingetragen habe.
Am Ende des Monats möchte ich, wie gesagt, diese Daten im Tabellenblatt drei sammeln, damit ich sie Auswerten kann.
Danke vorab für eure Hilfe!
Gruß
Christoph

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zusammenführen von Tabellblättern
10.04.2015 10:59:41
Tabellblättern
Danke für den Hinweis!
Ich habe das Makro mit meinen Unkenntnissen etwas umgebaut und es passiert irgenwie nix:
"Sammlung" bezeichnet das Arbeitsblatt zu dem ich alle Daten kopieren möchte...
Sub Sammlung()
Dim Zeile As Long, Spalte As Long, a As Long
Set wks = Worksheets("Sammlung")
a = 8
Application.ScreenUpdating = False
For Each ws In Worksheets
If ws.Name = "Tabelle4" And ws.Name = "Tabelle5" Then
For Zeile = 2 To ws.UsedRange.Rows.Count
'For Spalte = 1 To 13
'If Left(ws.Cells(Zeile, 2), 1) = "K" Then
'If Left(ws.Cells(Zeile, 2), 1) = "K" Or Left(ws.Cells(Zeile, 2), 1) = "k" Then
'If UCase(Left(ws.Cells(Zeile, 2), 1)) = "K" Then
' wks.Cells(a, Spalte) = ws.Cells(Zeile, Spalte)
'End If
'Next Spalte
a = wks.Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row + 1
Next Zeile
End If
Next ws
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Zusammenführen von Tabellblättern
10.04.2015 12:22:21
Tabellblättern
1. Du hast nicht die letzte Variante des Makros genommen
2. Anhand einer hochgeladenen Beispieldatei wäre alles viel einfacher.
Wenn du Probleme mit dem Datenschutz hast, ersetz alle d, n, h und m durch s, alle a, o und u durch e, alle 2, 3, 4 und 5 durch 6 usw.
Aber lad keine leere Datei hoch. Das bringt nichts außer falschen Lösungen und Fragen.

AW: Zusammenführen von Tabellblättern
13.04.2015 07:32:52
Tabellblättern
Guten Morgen,
Danke für den Hinweis, ich habe die Datei mal von allen Namen und Firmenverweisen befreit - hoffe ich :-)
Anbei also die Datei und hier eine kurze Beschreibung:
"Daten": Hier sind alle Daten hinterlegt welche ich für die Drop-Down-Menüs benutze
"Sammlung" Hier möchte ich alle Einträge von den Tabellenblättern "Name 1", "Name 2" usw in einer fortlaufenden Liste sammeln - hierfür benötige ich das Makro
"Auswertung": Hier füge ich eine Pivot-Tabelle ein, mit der ich die "Sammlung" auswerte
"Name 1", "Name 2",...: Hier sollen meine Kollegen ihre täglichen Stunden eintragen, die sie für Projekt x gearbeitet haben und diese sollen wie gesagt in das Blatt "Sammlung" kopiert werden.
Gruß
Christoph
https://www.herber.de/bbs/user/97045.xlsm

Anzeige
AW: Zusammenführen von Tabellblättern
13.04.2015 14:54:31
Tabellblättern
Du musst in Sammlung erst eine Kopfzeile einfügen
Private Sub Sammlung()
Dim Zeile As Long, a As Long
Set wks = Worksheets("Sammlung")
a = 2 ' erste Datenzeile in der Sammlung
Application.ScreenUpdating = False
For Each ws In Worksheets
If ws.Name  "Daten" And ws.Name  "Sammlung" And ws.Name  "AUswerung" Then
For Zeile = 2 To ws.UsedRange.Rows.Count
If ws.Cells(Zeile, 1)  "" Then
ws.Cells(Zeile, 1).EntireRow.Copy
wks.Cells(a, 1).PasteSpecial Paste:=xlPasteValues
wks.Cells(a, 1).PasteSpecial Paste:=xlPasteFormats
a = a + 1
Else
' hier kann man sagen, dass ab der ersten leeren Zeile
' nicht mehr weitergesucht werden muss:
GoTo NächstesBlatt
End If
Next Zeile
End If
NächstesBlatt:
Next ws
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Zusammenführen von Tabellblättern
13.04.2015 15:02:13
Tabellblättern
Ach du meine Güte, wie cool - das funktioniert wunderbar!
Vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige