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

Auflistung von Blättern auf ein Blatt

Auflistung von Blättern auf ein Blatt
26.02.2017 13:19:50
Blättern
Hallo,
ich bin auf der Suche nach einer Lösung Zeilen die mit Daten gefüllt sind und sich auf mehreren Tabellenblättern befinden auf einem Blatt aufzulisten.
Hierbei haben alle Blätter die selben Überschriften in der ersten Zeile und auf der Zusammenfassung sollte noch zusätzlich der Name des Tabellenblatts stehen von dem die Daten kommen.
Ich habe schon viel gesucht, es wird immer auf VBA verwiesen. Davon habe ich aber leider kein Ahnung.
Eine Beispielsdatei windet Ihr hier:
https://www.herber.de/bbs/user/111777.xlsx
Für Eure Hilfe möchte ich mich schon im voraus bedanken.
Viele Grüße
Thorsten Kroll

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 13:44:56
Blättern
Hallo Thorsten,
Teste mal diesen kleinen "Mehrzeiler":
' **********************************************************************
' Modul: Tabelle20 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub machs()
    Dim wbZiel As Worksheet
    Dim L As Long, K As Long, J As Long
    Dim Wb As Worksheet
    Dim arr As Variant
    Set wbZiel = Sheets("Zusammenfassung")
    K = 2
    For Each Wb In Worksheets
        If Not Wb Is wbZiel Then
            With Wb
                arr = .Range("J2", .Cells(.Rows.Count, 1).End(xlUp))
                For J = 1 To UBound(arr)
                    arr(J, 10) = Wb.Name
                Next
            End With
            wbZiel.Range("A" & K).Resize(UBound(arr), UBound(arr, 2)) = arr
            K = K + UBound(arr)
        End If
    Next
End Sub


ransi
Anzeige
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 13:55:44
Blättern
Hallo ransi,
danke für Deine schnelle Reaktion.
Aber leider wird in der Zusammenfassung auch die Zeile 1 mit den Überschriften der anderen Blätter angezeigt. Kann man das ändern?
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 14:01:04
Blättern
Hallo Werner,
bei Deiner Lösung passiert bei mir nichts.
Kannst Du die Datei hochladen
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 14:10:06
Blättern
Hallo
noch eine Anmerkung.
die Zusammenfassung solle nach Dateneingabe auf den anderen Blättern aktualisiert werden.
Das passiert bei der Lösung von ransi nicht. Habe ich eine falsche Einstellung?
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 14:11:10
Blättern
Hallo
noch eine Anmerkung.
die Zusammenfassung solle nach Dateneingabe auf den anderen Blättern aktualisiert werden.
Das passiert bei der Lösung von ransi nicht. Habe ich eine falsche Einstellung?
Anzeige
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 15:59:18
Blättern
Hallo Thorsten,
kann auch nicht. Den Hinweis, den du hier so beiläufig einstreust
noch eine Anmerkung.
die Zusammenfassung solle nach Dateneingabe auf den anderen Blättern aktualisiert werden.

sollte man halt schon haben.
Wobei sich dann gleich wieder die nächste Frage stellt:
Wie kommen die Daten in die Blätter? Händische Eingabe, Ergebnis von Formelberechnungen?
Gruß Werner
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 16:41:34
Blättern
Hallo Werner,
die Daten auf den anderen Blättern werden per Hand bzw. bei zwei Zellen per Dropdown eingegeben.
Habe jetzt dem "Makro" von ransi:
Public Sub Zusammenfassung()
Dim loLetzteQ As Long
Dim loLetzteZ As Long
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("Zusammenfassung")
For Each wsQuelle In ThisWorkbook.Worksheets
loLetzteZ = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1
If wsQuelle.Name  "Zusammenfassung" Then
loLetzteQ = wsQuelle.Cells(Rows.Count, 1).End(xlUp).Row
If loLetzteQ > 1 Then
With wsQuelle
.Range(.Cells(2, 1), .Cells(loLetzteQ, 9)).Copy wsZiel.Cells(loLetzteZ, 1)
wsZiel.Cells(loLetzteZ, 10) = wsQuelle.Name
End With
End If
End If
Next
End Sub
eine Tastenkobi zugeordnet
und ein zweites Makro das vorher die Zellen leert:
Sub Zellen_löschen()
'
' Zellen_löschen Makro
'
' Tastenkombination: Strg+l
'
Range("A2:J10").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
End Sub
Jetzt bin ich gerade dabei diese zusammenzufassen oder einen Button zu erstellen der beide ausführt. Mal sehen ob es klappt.
Viele Grüße
Thorsten
Anzeige
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 16:48:18
Blättern
Hallo Thorsten,
kannst ja auch mal das hier ausprobieren:
in ein allgemeines Modul:
Public Sub Zusammenfassung()
Dim loLetzteQ As Long
Dim loLetzteZ As Long
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Set wsZiel = ThisWorkbook.Worksheets("Zusammenfassung")
With wsZiel
loLetzteZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range(.Cells(2, 1), .Cells(loLetzteZ, 10)).ClearContents
End With
For Each wsQuelle In ThisWorkbook.Worksheets
loLetzteZ = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1
If wsQuelle.Name  "Zusammenfassung" Then
loLetzteQ = wsQuelle.Cells(Rows.Count, 1).End(xlUp).Row
If loLetzteQ > 1 Then
With wsQuelle
.Range(.Cells(2, 1), .Cells(loLetzteQ, 9)).Copy wsZiel.Cells(loLetzteZ, 1)
wsZiel.Cells(loLetzteZ, 10) = wsQuelle.Name
End With
End If
End If
Next
Set wsZiel = Nothing
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
ins Code-Modul vom Blatt "Zusammenfassung"
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Code-Fenster kopieren
Private Sub Worksheet_Activate()
Call Zusammenfassung
End Sub
Wie läuft es ab:
Sobald du von irgendeinem Blatt auf das Blatt "Zusammenfassung" wechselst wird das Makro im Modul aufgerufen. Dieses Makro leert dann zunächst das Blatt "Zusammenfassung" (bis auf die Überschriftenzeile) und kopiert dann alle Daten von allen anderen Blättern (in denen Daten vorhanden sind) ins Blatt "Zusammenfassung".
Der Code wird halt immer ausgeführt, sobald du auf das Tabellenblatt "Zusammenfassung" wechselst, egal ob in den anderen Blättern etwas geändert wurde oder nicht.
So hast du aber immer die aktuellen Daten aus den Blättern in deiner Zusammenfassung.
Gruß Werner
Anzeige
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 17:23:08
Blättern
Hallo Werner,
DANKE
Funktioniert Super.
Viele Grüße
Thorsten
Gerne u. Danke für die Rückmeldung. o.w.T.
26.02.2017 17:47:09
Werner
AW: Auflistung von Blättern auf ein Blatt
26.02.2017 13:53:41
Blättern
Hallo Thorsten,
da ich mir auch schon die Mühe gemacht habe, auch meine Version:
Public Sub Zusammenfassung()
Dim loLetzteQ As Long
Dim loLetzteZ As Long
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("Zusammenfassung")
For Each wsQuelle In ThisWorkbook.Worksheets
loLetzteZ = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1
If wsQuelle.Name  "Zusammenfassung" Then
loLetzteQ = wsQuelle.Cells(Rows.Count, 1).End(xlUp).Row
If loLetzteQ > 1 Then
With wsQuelle
.Range(.Cells(2, 1), .Cells(loLetzteQ, 9)).Copy wsZiel.Cells(loLetzteZ, 1)
wsZiel.Cells(loLetzteZ, 10) = wsQuelle.Name
End With
End If
End If
Next
End Sub
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige