PDA

Vollständige Version anzeigen : Lösungen gesucht: Daten erstellen speichern und aufrufen mit Excel 2007


G.Ranly
20.04.2009, 19:49
Hallo,
im Rahmen einem umfangreichen Excel Datei/ Programmierung (ca. 30 Tabellenblätter mit ca. 250 Grundwerten insg. ca. 7,5 MB), haben wir folgendes Problem:

Wir erstellen mittels verschiedener Formeln und auch über Eingaben von verschiedenen Usern diverse Werte, diese Werte sollen jeweils als ein Datensatz gespeichert werden. Zur Überarbeitung der Werte ist es notwendig, diese Werte wieder mit Excel aufzurufen.

Unser erster Lösungsansatz war die Werte mittels umfangreicher Markos/ VBA(Copy & Paste) in die Datenbank (auch ein Excel Tabellenblatt) zu kopieren und mittels eines ebenso umfangreichen Marko wieder in die entsprechenden Wertfelder zurück zu kopieren. Dieser Ansatz hat sich aus verschiedenen Gründen als nicht tauglich erweisen: Bei jeder Veränderung des Layouts (einfügen von Spalten etc.) muss der VBA Code korrigiert werden, des weiteren war der VBA Code sehr unübersichtlich und daher Fehleranfällig, letzt endendes sind unsere VBA Kenntnisse auch noch nicht sehr weit gediehen, deswegen suchen wir einen neuen besseren Ansatz.

Der zweite Lösungsansatz den wir angedacht haben ist folgender:
Mittels der „Wenn Dann“ Formel wird entweder die Eingabe-/ Wertzelle (sofern dort ein neuer Wert der nicht gleicht dem Startwert ist (meistens 0) vom User eingeben oder ausgewählt wurde) oder über einen direkten Bezug der Wert aus der Datenbank (Festwerte) ausgewählt.
Die ‚Datenbank‘ bestehet aus zwei Tabellenblättern, die erste („Bezugswerte“) bezieht ihre Wert über einen direkten Bezug aus den “Wenn Dann“ Zellen. Bei jeder Änderung wird das gesamte Tabellenblatt mittels der Funktion „Inhalte Einfügen -> Werte“ über ein Makro in ein zweites Tabellenblatt (Festwerte) kopiert. Von dort werden die Werte wiederum mittels einem Verweis (abhängig vom gewählten Datensatz) in die „Wenn Dann“ Zellen zurück gegeben.
Zusätzlich sollen die Werte, bei Aufruf eines neuen Datensatzes in der Eingabezelle mittels Suchen ersetzten (nach einer Farbe, was ja mit Excel 2007) geht „genullt“ werden.

Dieser Ansatz hat jedoch auch seine Nachteile:
Für jeden Wert ist neben dem eigentlichen Eingabefeld/ zelle eine zweite Zelle notwendig, in welcher dann der „eigentliche“ in diesen Datensatz gelten wert steht. Das ist sowohl vom Layout unschön:
• zwei Zellen für einen Wert (eine zum Eingeben und eine, welche dann den tatsächlich in diesen Datensatz gültigen Wert anzeigt)
• desweiteren ist es auch teilweise schwierig und umfangreich überall diese zweite Zelle einzubauen, zumal die Eingabefelder über viele Tabellenblätter verteilt sind.
Zur Verdeutlichung eine kurze Beispieldatei als Anhang.

Ideal wäre eine Art bedingte Eingabe, so das in einem Feld sowohl eine Wert eingeben werden, als auch über einen direkten Bezug (SVerweis) aus der Datenbank ausgelesen werden könnte, ohne, dass die Formel überschrieben wird (eine Art „bedingte Eingabe“). Leider gibt es bei Excel 2007 diese Funktion noch nicht…

Noch etwas wäre uns wichtig: Weil wir eh ein Versionsproblem haben möchten wir gerne sowohl die Datensätze als auch die Auswertung der Daten (Berechnungen etc.) möglichst in einer Datei habe.
Unsere Fragen bezüglich dieser Problematik sind direkt mehrere:

1. Gibt es vielleicht ein Add-In bzw. ein VBA Code, der diese Art der bedingten Zelleingabe ermöglicht und wenn ja wo findet man diesen? Falls es ein VBA Code gibt, sollte dieser sich möglichst bei Änderungen am Layout (Spalten, Zellen einfügen) mit verändern.
2. Gibt es eine einfachere weitere, weniger Fehleranfällige Lösung unseres Problems, vorzugsweise mit möglichst wenig VBA Anteilen.
Danke und Gruß

G.Ranly

jinx
21.04.2009, 06:14
Moin, G.Ranly,

z.B. die Datenmaske nutzen (muss in 2007 über Excel-Optionen in die QAT eingefügt werden) bzw. zuerst die Angaben ermitteln, bevor man zu programmieren anfängt (die Vorüberlegungen machen mehr als die halbe Miete aus und helfen bei Anpassungen/Erweiterungen).

G.Ranly
21.04.2009, 11:07
Hallo Jinx,
danke für die Antwort, leider hilft uns dein Vorschlag nicht weiter, mir ist das Tool "Datenmaske" schon bekannt. Die Problematik ist etwas komplexer, es handlet sich nicht um einfache Daten, sondern um Werte welche nach bestimmten Regeln, Vorgaben und Bestimmungen ermittelt werden müssen und dann auch zu weiteren Berechungen verwendet werden.
Sinn und Zweck des Programmes ist es den User bei der Ermittung dieser Daten zu helfen. Dafür gibt es in unsere Excel Programm verschiede Formularseiten (Tabellenblätter). Deswegen müssen die Daten auf den verschiedenen Formularseiten (Tabellenblätter) erstellt werden, dann mittels eines Bezuges Oder wie in unserer ersten Version über "Copy und Past" zu einem Datensatz zusammengefasst werden und von dort auch wieder abrufbar sein. Mittels des Tools "Datenmasken" würden ja ebenfalls Formlen und Nezüge überschrieben und zudem könnte die Eingabe nicht mehr in den dafür vorgesehen Formularen erfolgen, was ja Sinn und Zweck des Programmes ist.
Das Programm ist ein "gewachsenes" Programm, an welchen wir seit 2002 arbeiten (7,5 MB ist schon eine ganze Menge). Da wir ständig Verbesserungen und Ergänzungen einbauen, war eine klare Vorplannung bei Beginn des Projektes nicht möglich. Wir haben auch nicht die Ressourcen das Programm ständig neu zu porgrammieren.

Von daher bleibt das Problem, wie in der ersten Beitrag beschrieben bestehen und auch die dort gestellten Fragen...
Falls Du oder jemand anders diesbezüglich weitere Ideen und Vorschläge hättet könnte uns das ggf. weiterhelfen.

LG

G.Ranly