Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten aus mehreren Tabellen selektieren

Daten aus mehreren Tabellen selektieren
16.03.2006 18:11:31
christian
hallo zusammen,
bin erst seit kurzem dabei, habe aber schon sehr viele hilfreich Ideen durch Euch bekommen. Für das momentane Problem konnte ich bis dto. jedoch noch keine Lösung finden, so daß ich auf Eure Unterstützung hoffe.
Ich habe eine Datei die aus folgenden Tabellen besteht:
a) Tabelle (Übersicht) mit den Spalten Wertpapiername, Wertpapiernr, Anzahl Aktien...
b) für jedes Wertpapier existiert eine eigene Tabelle in der sich die Bewegungsdaten befinden(identischer Aufbau). Bestimmte Zellen wurden mit Namen versehen (z.B. Zelle für Wertpapiername als Wertpapiername)
Ich möchte jetzt gerne, daß regelmäßig für jedes Wertpapier das sich in der Übersicht befindet ein automatischer Abgleich mit der jeweiligen Wertpapiertabelle erfolgt und bestimmte Felder dort automatisch ausgelesen werden und die Übersicht entsprechend aktualisiert wird.
Kann mir jemand von Euch hier Tipps geben, wie sowas funktioniert?
Für Eure Unterstützung im Voraus besten Dank.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus mehreren Tabellen selektieren
16.03.2006 19:12:38
ChrisL
Hallo Christian
Trägt Zelle A1 der übrigen Tabellen im Blatt Übersicht, Spalte A und B zusammen.

Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim LetzteZeile As Long
Set WS1 = Worksheets("Übersicht")
WS1.Columns("A:B").ClearContents
For Each WS2 In Worksheets
If WS1.Name <> WS2.Name Then
LetzteZeile = WS1.Range("A65536").End(xlUp).Row + 1
WS1.Cells(LetzteZeile, 1) = WS2.Name
WS1.Cells(LetzteZeile, 2) = WS2.Range("A1")
End If
Next WS2
End Sub

Gruss
Chris
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 11:07:22
Christian
Hallo ChrisL,
danke für Deine rasche Antwort. Ich sende Dir anbei ein Beispiel, was ich gerne erreichen würde. Vielleicht wird es dann etwas transparenter.
Für Deine Unterstützung schon jetzt besten Dank.
Schöne Grüße
Christian
Die Datei liegt unter: https://www.herber.de/bbs/user/31984.doc
Anzeige
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 11:52:51
ChrisL
Hallo Christian
Dazu kann ich dir vielleicht heute abend noch ein Beispiel erstellen. Allerdings habe ich wenig Lust deine Screen-Shots nach Excel abzutippen, vorallem sieht man auch die Spalten nicht (wo genau steht was). Damit ich dir gleich auf Anhieb die Endlösung liefern kann, wäre ich deshalb dankbar, wenn du eine Excel-Beispieldatei machen könntest.
Noch eine Zusatzfrage. Kann es auch vorkommen, dass eine Aktien in der Übersicht (noch) nicht enthalten ist, und wie ist mit diesen umzugehen? Umgekehrt, was soll geschehen, wenn in der Übersicht eine Aktie vorhanden ist, für die kein Blatt besteht.
Gruss
Chris
Anzeige
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 15:15:42
christian
Hallo Chris,
sorry! Dachte mit der Hardcopy wäre es für Dich verständlicher und einfacher. Anbei sende ich Dir ein Beispiel mit den entsprechenden Tabellen. Auf dem Tabellenblatt "Depot" findest Du noch einige Hinweise bzgl. der heutigen Verknüpfungen.
Ich hoffe jetzt ist es etwas verständlicher und vor allem einfacher für Dich.
Für Deine Unterstützung vielen Dank.
Schöne Grüße
Christian
https://www.herber.de/bbs/user/31990.xls
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 16:37:09
ChrisL
Hallo Christian
Wenn Wertpapiername und Tabellennamen (bei 3U) nicht übereinstimmen, kann der Vergleich natürlich nicht funktionieren.
Ansonsten könntest du folgende Formeln einfügen:
D5: =INDIREKT(B5&"!E25")
D6: =INDIREKT(B6&"!E25")
D7: =INDIREKT(B7&"!E25")
T5: =INDIREKT(B5&"!K25")*INDIREKT(B5&"!J25")
T6: =INDIREKT(B6&"!K25")*INDIREKT(B6&"!J25")
T7: =INDIREKT(B7&"!K25")*INDIREKT(B7&"!J25")
usw.
Gruss
Chris
Anzeige
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 17:51:13
Christian
Hallo Chris,
wäre auch eine Möglichkeit. Jedoch ist bei dieser Variante die Zelle statisch. Wenn ich in der entsprechenden Wertpapier-Tabelle z.B. eine Zelle einfügen muß, erhöht er nicht die Zeilen-Nr. Oder kann man das mit der Formel hinbekommen?
Gruß
Christian
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 18:56:54
ChrisL
Hallo Christian
Wenn ein neues Blatt dazu kommt, soll ein neuer Datensatz in Tabelle Depot generiert werden und Zeile 8 verschiebt sich nach unten. Wenn eine Tabelle gelöscht wird, soll sich der Eintrag im Depot löschen?
Bin vielleicht etwas kompliziert, aber möchte eben alles genau wissen, bevor ich an die Arbeit gehe.
Gruss
Chris
Anzeige
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 19:31:04
christian
Hallo Chris,
Du bist wahrscheinlich nicht kompliziert. Meine Problembeschreibungen sind vielleicht für andere so bescheiden. Sorry.
Deine Frage, ob bei Anlage eines neuen Wertpapierblattes automatisch ein neue Zeile im Übersichtsblatt generiert werden soll, finde ich echt gut. An einen solchen Komfort hatte ich ehrlich gesagt noch gar nicht gedacht (hier sieht man den Könner!). Wenn das möglich ist, und er automatisch die Verknüpfungen anlegt, wäre daß natürlich sehr hilfreich.
Das Problem bei dem Indirekt-Befehl sehe ich darin, daß die Bezüge zwischen Depotübersicht und den einzelnen Wertpapier-Tabellen statisch sind (z.B Zeile E25). Wenn ich jetzt eine Zeile in einer der Wertpapiertabellen einfügen muß (da keine freien Zeilen mehr vorhanden) verschiebt er die entsprechenden Verknüpfungen bei diesem Befehl nicht (z.B. Ursprüngliche Verknüpfung 3U!E25 - nach Einfügung befinden sich die Summendaten in der betreffenden Wertpapiertabelle aber in Zeile E26.
Leuchtet mein Problem ein?!
Viele Grüße
Christian
Anzeige
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 20:24:46
ChrisL
Hallo Christian
Kommunikation ist nicht immer einfach, aber deine Erklärungen sind gut.
Glaube wir kommen der Sache näher. Folgende Funktion in ein Standardmodul kopieren d.h. Alt + F11, Menü Einfügen, Modul, Code reinkopieren.

Function IndirektSpezial(strName As String, intSpalte As Integer) As Variant
Dim WS As Worksheet
Set WS = Worksheets(strName)
Application.Volatile
IndirektSpezial = WS.Cells(65536, intSpalte).End(xlUp)
End Function

Anschliessend als Tabellenfunktion verwendet:
D5: =IndirektSpezial(B5;5)
D6: =IndirektSpezial(B6;5)
D7: =IndirektSpezial(B7;5)
T5: =IndirektSpezial(B5;11)*IndirektSpezial(B5;10)
T6: =IndirektSpezial(B6;11)*IndirektSpezial(B6;10)
T7: =IndirektSpezial(B7;11)*IndirektSpezial(B7;10)
Zelle B5 ist klar und die Ziffern 5, 11 und 10 stehen für die Spalte 5 = E, 11 = K, 10 = J.
Du bekommst immer den letzten Wert in der angegebenen Spalte.
Gruss
Chris
Anzeige
AW: Daten aus mehreren Tabellen selektieren
19.03.2006 18:29:56
Christian
Hallo Chris,
mußte am Wochenende kurzfristig weg. Konnte mir erst heute Deinen Vorschlag anschauen und einbauen.
Deine Function macht genau das, was ich brauche. Super. Vielen Dank. Finde ich echt toll, daß Du Dir soviel Zeit genommen hast. Auf diese Idee wäre ich wahrscheinlich nie gekommen. Am Montag werde ich sie komplett in meine Datei einbauen, dann gebe ich Dir Feedback ob alles funktioniert hat.
Bis dahin nochmals vielen Dank für Deine Unterstützung.
Grüße aus Karlsruhe
Christian
Danke für die Rückmeldung o.T.
20.03.2006 08:15:19
ChrisL
Gruss
Chris
AW: Danke für die Rückmeldung o.T.
20.03.2006 11:07:43
Christian
Hallo Chris,
ich glaube das ist selbstverständlich, wenn man so kompetent und schnell geholfen bekommt. Ich werde mich jetzt an die Umsetzung für die ganze Datei machen. Im Vorfeld möchte ich jedoch noch bestimmte Variablen für alle Module in der Datei deklarieren, damit ich sie nicht in jedem Modul bei notwendigen Änderungen anfassen muß:
Beispiel:
In mehreren Modulen gibt es folgende Variablen die jeweils eine Positionsnummer für eine Zelle beinhalten:
s1 = 1 ' bedeutet : erste Spalte in Sheet
s2 = 2 ' bedeutet : zweite Spalte in Sheet ....
Diese Werte verwende ich für bestimmte Cells bzw. Range-Anweisungen.
oder
wb = "Depot" ' Deklaration für Workbook...
Ich wollte diese Variablen in einem Klassenmodul deklarieren. Das funktioniert aber nicht so wie ich mir das vorstelle. Gibt es da eine andere Möglichkeit?
Für
Anzeige
AW: Danke für die Rückmeldung o.T.
20.03.2006 12:54:16
ChrisL
Hallo Christian
Freut mich, dass Feedback für Dich selbstverständlich ist. Leider sehen es nicht alle Leute so, aber dies ist eine andere Geschichte.
Du müsstest die Variablen als Public deklarieren z.B.
Public WS As Worksheet

Sub t1()
Set WS = Worksheets("Tabelle1")
End Sub


Sub t2()
Call t1
MsgBox WS.Name
End Sub

Allerdings würde ich dir davon abraten. Wieso genau kann ich dir auch nicht sagen :-)
Ich vermute globale Variablen sind eher verpönt, weil Probleme wie z.B. Mehrfachdeklaration (lokal und global) oder Speicherverwaltung (die globale Variable wird nie geleert) entstehen könnnen.
Gruss
Chris
Anzeige
AW: Daten aus mehreren Tabellen selektieren
17.03.2006 11:58:44
ChrisL
Hallo Christian
Ist mir eben noch eine ganz simple Lösung mittels Tabellenfunktion INDIREKT eingefallen.
=INDIREKT(B2&"!X1")
In B2 steht der Tabellennamen und X1 ist die Zelle mit dem Wert drin.
Gruss
Chris

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige