Lösungen gesucht: Daten erstellen speichern und aufrufen mit Exce

21/04/2009 - 12:53 von G.Ranly | Report spam
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
 

Lesen sie die antworten

#1 Alexander Wolff
21/04/2009 - 14:53 | Warnen spam
Die Tastatur von G.Ranly wurde wie folgt gedrückt:
im Rahmen einem umfangreichen Excel Datei/ Programmierung (ca. 30
Tabellenblàtter mit ca. 250 Grundwerten insg. ca. 7,5 MB), haben wir
folgendes Problem:



Sollen die Daten von Usern immer getrennt bleiben, oder werden Auswertungen
auch über mehrere User zusammen gebildet?

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.



Wenn es irgend geht: Der User bekommt nur relativ simple Dateien, in die er
etwas eingeben kann, die aber weder VBA noch sehr viele Formeln aufweisen.
Evtl. ja sogar eine Webseite!

Oder er könnte de Kompetenz haben, ALLES zu kennen. Dafür könnte er die
Hauptdatei dann ohne Schreibrechte öffnen dürfen.

Oder er hat die Kompetenz CHEF, ADMINISTRATOR oder ENTWICKLER (letzterer:
zeitlich beschrànkt oder anhand Testdaten). Dann dürfte er alles.

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



Dann: Keine besonders intelligente Verwendung von VBA. Falls Zeilen/Spalten
eingefügt werden können sollen, würde ich mit
Spaltenkopf-/Vorzeilenbezeichnern arbeiten und in VBA (oder mit VERGLEICH)
vor jeder Operation die Lage der zu bearbeitenden Information suchen.

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.



Diese beiden letzteren Punkte treten naturgemàß zusammen auf :-)

[hier einiges gelöscht und nicht weiter beachtet]

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.



Das sieht aus nach dem Einsatz von "Daten Gültigkeit" bzw. dem für xl2007
gültigen Pendant. Achtung: Einschrànkungen über mehrere Blàtter hinweg. Die
Liste auf nicht dem gleichen Blatt muss benannt sein.

Damit kannst Du genau Dein a) eingeben und b) aus einer Liste gültigen Wert
auswàhlen.

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.



Das ist ok. Jedoch ist immer die Verwendung verschiedener Blàtter oder
zumindest verschiedener Bereiche für Daten und Auswertung (genauso trenne
ich die beiden Begriffe auch immer) sinnvoll.

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.



s.o, "Daten Gültigkeit" (ohne VBA möglich). Natürlich ginge auch etwas über
VBA, falls "Daten Gültigkeit" nicht ausreicht.

2. Gibt es eine einfachere weitere, weniger Fehleranfàllige Lösung
unseres Problems, vorzugsweise mit möglichst wenig VBA Anteilen.



Wie es so klingt, ja. Nur müssten wir eigentlich dafür die ganze Aufgabe und
die ganzen Bedingungen kennen.
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2

Ähnliche fragen