Excel | Zellen "verknüpfen"

-]Dr.OeTz![-

Lt. Junior Grade
Registriert
Nov. 2009
Beiträge
509
Hallo Zusammen,

eventuell passt der Threadtitel nicht so recht - bitte haltet euch daher nicht an der Begrifflichkeit "verknüpfen" auf - habe keinen besseren Begriff gefunden und deswegen scheitere ich vermutlich auch bei www.gidf.de ;)

Ich versuche mal zu beschreiben, was ich brauche:
Gegeben ist ein Workbook mit drei Worksheets (Tabelle1, Tabelle2 und Tabelle3)

In allen drei Worksheets möchte ich gerne "Wert_1" ausgeben/verwenden. Nun könnte ich natürlich einfach "Wert_1" in Tabelle1!A1 schreiben und aus den anderen Worksheets darauf referenzieren.

Dabei ergibt sich aber das Problem, dass ich "Wert_1" nur in Tabelle1!A1 editieren kann, wenn ich will, dass der Wert in den anderen Worksheets übernommen wird.

Ich brauche jedoch eine Funktion/Möglichkeit, dass ich "Wert_1" in allen drei Worksheets editieren kann und die Anpassung in den jeweils anderen Worksheets übernommen wird.

Sowas kann man zwar per VBA umständlich bauen aber ich bin mir sicher, dass Excel da schon was an Bord hat, was ich verwenden könnte. Habt ihr eine Idee?

Danke schon mal im Voraus :)
 
-]Dr.OeTz![- schrieb:
Ich brauche jedoch eine Funktion/Möglichkeit, dass ich "Wert_1" in allen drei Worksheets editieren kann und die Anpassung in den jeweils anderen Worksheets übernommen wird.

Wirst Du um VBA nicht herumkommen, denn Excel muß ja feststellen können, welches die letztgültige Fassung der Zelle ist, sonst überschreibst Du ggf. einen aktuellen mit einem historischen Wert.

Änderungen an einer Zelle lassen sich hier am ehesten über VBA verwursten, sowie auch Vergleiche von drei Variablen (workbooks) oder auch Dateiattribute (wie etwa das Änderungsdatum oder der letzte Zugriff).
 
  • Gefällt mir
Reaktionen: PERKELE
Also VBA kann, muss aber nicht kompliziert oder umständlich sein. Wie oft muss dieser Wert denn geändert werden ?
Du könntest z.B. in Z1 den Wert eintragen , die Zellen sich den Wert von dort ziehen lassen - und bei Bedarf dann dort ändern. Am Ende musst du eh so arbeiten, egal ob Formel oder Makro - der Wert muss ja in einer Zelle oder in einer Variable stehen um zu Existieren.
 
Und es ist nicht möglich, dass du ein Worksheet4 als Input Sheet baust, dort sämtliche Daten eingibst und die Sheets 1-3 (Output) auf 4 verweist?
 
Warum musst Du die werte in allen drei Worksheets ändern können, wenn sie am Ende in allen drei gleich sein werden? Da macht es doch eher Sinn diese nur in einem zu ändern.
Das was Du möchtest wird ohne VBA nicht gehen denn es ist ein klassischer Zirkelbezug.
 
@MAP94
Ja - das ist natürlich möglich - im Grunde genommen ist das bei mir schon so... aaaber ;)

@Palomino
Einfach wegen der Usability. Ich möchte Daten visualisieren und dem Nutzer die Möglichkeit geben quasi live zu sehen, wie sich bei bestimmten Parametern eine bestimmte Entwicklung abzeichnet. Der Nutzer soll diese Werte direkt ändern können und sie sollen in den anderen Ansichten dann direkt übernommen werden.

Das Beispiel:
"Tabelle1 (Übersicht)" = Die Dateneingabe. Hier sollen alle Eingaben Zusammengefasst werden (wie von @MAP94 und @Turian vorgeschlagen)
"Tabelle2 (Rente)" = Hier soll ein Rentenrechner hin
"Tabelle3 (BU)" = Hier soll ein Rechner für Berufsunfähigkeitsrente hin

Warum soll der Nutzer die Werte an mehreren Stellen anpassen können:
In den Rechnern (Tab 2 & 3) soll bspw. dargestellt werden, mit welchen Beiträgen, sich welche Absicherung erzielen lässt und ob der Beitrag den man bereit ist zu zahlen überhaupt ausreichen würde um die gewünschte Absicherung zu erreichen. Dazu ist es wichtig, die Werte direkt eingeben zu können. Dabei ist es aber auch wichtig, dass bestimmte Werte direkt auf einem anderen Tabellenblatt/Worksheet übernommen werden und anders herum. In diesem "und anders herum" liegt aber eben die Krux.

Und da kommt VBA ins Spiel:
Ich kann nun einen Trigger bauen, der mir die Felder in Tabelle 1, 2 und 3 überwacht und bei Änderung in den anderen Tabellen anpasst aber A weiß ich nicht genau wie ich das am besten anstellen soll (Experimentiere gerade mit Namensmanager*) und B ist es ja oft so, dass Funktionen die man mit VBA bauen kann bereits in Excel enthalten sind.


@waldifubu
Ja - aber noch nie in dem Zusammenhang.

@Twostone
Das wäre egal. Die letzte Eingabe soll alle bisherigen überschreiben... nur um Missverständnissen vorzubeugen - wir reden auch von einem Workbook - also einer Arbeitsmappe/Excel-Datei
 

Anhänge

Das Vorhaben ist in VBA nicht kompliziert.
Zellen auf Aenderungen ueberwachen, wenn Aenderung -> Eintraege in allen Blaettern anpassen.

Ohne VBA:
Viertes Blatt fuer die Eingaben nutzen und die restlichen darauf verweisen.
Das vierte Blatt dann per geteilter Ansicht permanent einblenden.
Waeren dann aber zwei geoeffnete Fenster.


waldifubu schrieb:
schon mal was von sverweis gehört?
Die Loesung wuerde mich interessieren. TEile also bitte dein Wissen.
 
Scientist schrieb:
Das Vorhaben ist in VBA nicht kompliziert.
Zellen auf Aenderungen ueberwachen, wenn Aenderung -> Eintraege in allen Blaettern anpassen.
Du schreibst nicht kompliziert: Das interessiert mich brennend - wie ungefähr würdest Du das anstellen? :)

Die Lösung ohne VBA ist mir auch schon in den Sinn gekommen aber so richtig überzeugt bin ich noch nicht. Das mit "Änderungen überwachen" klingt deutlich interessanter
 
In VBA gibt es "Events", damit lassen sich Ereignisse ueberwachen.
Ein Event bspw. wird ausgeloest, wenn eine Aenderung in einer Zelle durchgefuehrt wird ("Worksheet_Change").
Jetzt schreibt man also in dieses Event nur eine Wenn-Abfrage:
Wenn aktuelle Zelle gleich Zelle X oder Y oder Z, dann kopiere aktuellen Inhalt in X, Y und Z.
 
  • Gefällt mir
Reaktionen: Bonanca
Das könnte funktionieren...

Mal schauen wie weit ich heute noch komme... ;)
 
Zuletzt bearbeitet:
Die von Scientist empfohlene Lösung ist die effizienteste. Beachte aber, dass derartige Überwachungen bei JEDER Änderung im Workbook durchgeführt werden.
Das kann dann je nach Anzahl an Eingaben einiges an Zeit kosten.
Müsste man wohl schreiben und dann evtl optimieren.


-]Dr.OeTz![- schrieb:
"Tabelle1 (Übersicht)" = Die Dateneingabe. Hier sollen alle Eingaben Zusammengefasst werden (wie von @MAP94 und @Turian vorgeschlagen)
"Tabelle2 (Rente)" = Hier soll ein Rentenrechner hin
"Tabelle3 (BU)" = Hier soll ein Rechner für Berufsunfähigkeitsrente hin
Daraus ergibt sich für mich nicht, warum auf allen 3 Tabellen die gleichen Werte stehen müssen.


-]Dr.OeTz![- schrieb:
In den Rechnern (Tab 2 & 3) soll bspw. dargestellt werden, mit welchen Beiträgen, sich welche Absicherung erzielen lässt und ob der Beitrag den man bereit ist zu zahlen überhaupt ausreichen würde um die gewünschte Absicherung zu erreichen. Dazu ist es wichtig, die Werte direkt eingeben zu können.
Warum können dann nicht unterschiedliche Werte in Tabelle 2&3 eingegeben werden? Immerhin handelt es sich auch um unterschiedliche Berechnungen für verschiedene Produkte.

Ich würde beide eingegebenen Werte aus Tab 2&3 in Tabelle 1 als Unterteilung "BU"&"Rente" beziehen lassen.
 
Bonanca schrieb:
Die von Scientist empfohlene Lösung ist die effizienteste. Beachte aber, dass derartige Überwachungen bei JEDER Änderung im Workbook durchgeführt werden.
Das kann dann je nach Anzahl an Eingaben einiges an Zeit kosten.
Müsste man wohl schreiben und dann evtl optimieren.
Bei dem hier dargestellten Szenario ist das unerheblich. Das was Zeit kostet sind die einzelnen Lese- und Schreibvorgaenge, die mit der Wenn-Abfrage abgefangen werden.
 
Hi,

ich stimme Scientist zu, die Zellüberwachung per Event ist die beste Lösung. Auch, wenn es VBA ist, ist es sehr schnell und einfach umsetzbar. Allein der kleine Code

Code:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    '
    MsgBox Target.Worksheet.Name & " : " & Target.Address & " geändert"
    '
End Sub

im VBA Bereich "Diese Arbeitsmappe" zeigt bei allen Tabellenblättern des Workbook gleich das geänderte Tabellenblatt und die geänderte Zelle. Natürlich steigt der Aufwand der Abfragen mit der Anzahl der änderbaren Zellen.
 
Zurück
Oben