450 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich möchte in einer Excel-Mappe ein Tabellenblatt anlegen, das sich die
Daten aus anderen Tabellenblättern (alle gleich formatiert) zieht,
untereinander darstellt und sich bei Änderungen in diesen anderen
Tabellenblättern aktualisiert.

Wie könnte man das hinbekommen?

Viele Grüße
chrsei

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

am einfachsten geht es so: Schreibe in eine Zelle auf dem Übersichtsblatt ein Gleichheitszeichen, wechsele dann auf das Arbeitsblatt, aus dem du den Wert haben willst und klicke auf die entsprechende Zelle. Dann drücke die RETURN-Taste. In deinem Übersichtsblatt steht dann eine Formel, die etwa wie folgt aussieht:

=Tabelle3!B2

Ändert sich der Wert der Zelle in der Quell-Tabelle, dann ändert sich auch der Wert in deinem Übersichtsblatt.

Gruß

M.O.
0 Punkte
Beantwortet von
Danke erst einmal für deine Antwort.
Allerdings ist es so, dass in den Tabellenblättern regelmäßig neue
Daten eingetragen werden. Das ist also die "Pflege"-Grundlage. Um
eine doppelte Datenpflege zu vermeiden, soll es eben eine automatisch
aktualisierende Gesamttabelle geben, die alle Daten nach Datum
sortiert ausgibt. Deswegen ist ein Lösungsvorschlag leider nicht
praktikabel.

Vielleicht fällt dir oder jemand anderem ja noch etwas ein.

Viele Grüße
chrsei
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

nimm mal bitte für einen Moment an, dass kein anderer deinen Tabellenaufbau kennt und weiß, was du für ein Ergebnis willst ;-).
Also erkläre doch bitte mal genau, wie deine Tabelle aussieht und was du eigentlich erreichen willst bzw. wie deine Übersichtstabelle aussehen soll.

Gruß

M.O.
0 Punkte
Beantwortet von
Sorry, ich wusste nicht, wie viele Details hier erwünscht sind ;-)

Also die Tabellenmappe sieht folgendermaßen aus:
Es gibt 5 Tabellenblätter. die folgende Spalten beinhalten: Start-Datum |
Enddatum | Buchtitel | Autor | ISBN | Kategorie (Blattbezeichnung) |
Preis | Sonderpreis | Status (in Arbeit, Erledigt)

Das 6 Blatt soll dann die gleichen Spalten besitzen und alle Zeilen der 5
Tabellenblätter untereinander darstellen, damit ich die Zeilen in dieser
Gesamttabelle nach Datum sortieren kann und weiterhin die Daten in
den 5 Tabellenblättern pflegen kann.

Ich hoffe, so ist es verständlicher?

Viele Grüße
chrsei
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wer Ergebnisse will, der muss auch liefern ;-).

Ich gehe mal davon aus, dass alle Tabelle gleich aufgebaut sind und sich nur diese 6 Tabelle in deiner Arbeitsmappe befinden.
Kopiere den folgenden Code in ein Standard-Modul deiner Arbeitsmappe.
In der Tabelle, in der die Daten hineinkopiert werden, muss eine Überschriftenzeile vorhanden sein. Der Code darf nur aus der Tabelle gestartet werden, in der die Daten hineinkopiert werden sollen:

Sub uebersicht_erstellen()
Dim i As Long
Dim lngLetzteZ As Long
Dim lngLetzteQ As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

With ActiveSheet
'eventuell vorhandene Daten im Zielarbeitsblatt ab Zeile 2 löschen
lngLetzteZ = .Cells(Rows.Count, 1).End(xlUp).Row
If lngLetzteZ > 2 Then .Range("A2:I" & lngLetzteZ).ClearContents
End With

'Alle Tabellenblätter durchlaufen
For i = 1 To ThisWorkbook.Worksheets.Count
'Daten nur dann kopieren, wenn nicht das aktive Arbeitsblatt angesprochen wird
If ThisWorkbook.Worksheets(i).Name <> ActiveSheet.Name Then
lngLetzteZ = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
With Worksheets(i)
'letzte Zeile in der Quell-Tabelle lesen
lngLetzteQ = .Cells(Rows.Count, 1).End(xlUp).Row
'Bereich aus Blatt ab Zeile 2 kopieren
.Range("A2:I" & lngLetzteQ).Copy Destination:=ActiveSheet.Range("A" & lngLetzteZ)
End With
End If
Next i

'Daten nach Startdatum sortieren
lngLetzteZ = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

With ActiveWorkbook.ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A2:A" & lngLetzteZ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("A1:I" & lngLetzteZ)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub

Die kopierten Daten werden nach dem Start-Datum sortiert.
Die Aktualisierung muss man aber "per Hand" starten. Es wäre auch möglich, die Aktualisierung z.B. beim Schließen oder Öffnen der Datei automatisch durchführen zu lassen.

Gruß

M.O.
0 Punkte
Beantwortet von
Lieber M.O.

woooow, das funktioniert nun genau so, wie ich das vor Augen hatte. VIELEN VIELEN DANK!!!!!!!!!!!!!!

Viele Grüße
chrsei
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

vielen Dank für die Rückmeldung. Freut mich, dass das Makro so funktioniert, wie du willst.

Gruß

M.O.
...