HERBERS Excel-Forum - das Archiv

Thema: dynamische Eingabemaske aus unterschiedlichen Quellen

dynamische Eingabemaske aus unterschiedlichen Quellen
MaDel
Hallo zusammen,
ich stehe vor der (für mich sehr großen) Herausforderung, abertausende Datensätze in eine Datenbank/ ein Datenblatt (in der beigefügten Datenmappe: „Beispieldatensatz_Funddatenbank“) einzutragen. Um Fehler zu vermeiden und um den Aufwand zu reduzieren, möchte ich das über eine Eingabemaske mit (teilweise) dynamischer Dropdownauswahl machen.
Ein Problem ist, dass ein Teil der Daten teilweise aus unterschiedlichen Tabellen kommen und mit der Dropdownauswahl verschiedene Zellen automatisch, analog wie in der Ursprungstabelle befüllt werden sollen. Für andere Zellen soll eine einfache Dropdownliste aus einer anderen Tabelle als Auswahl zur Befüllung zur Verfügung gestellt werden und auch hier sollen mit der Auswahl dann weitere Zellen automatisch befüllt werden. Die restlichen Zellen sollen durch direkte Eingabe mit Texten ausgefüllt werden.
Konkret sollen für den Bereich Taxonomie (Spalten A bis V im (hier als Beispieldatensatz kopierten Ausschnitt) „Beispieldatensatz_Funddatenbank“) die Taxa (Arten) über eine dynamische Dropdownauswahl aus dem Datenblatt (des hier als Beispiel eingefügten sehr kleinen Ausschnitts einer riesigen Datenbank) „Beispieldatenbank_Lixinae_Taxa“ ausgewählt werden. Sprich über Auswahl der Gattung („Genus“, Spalte O) sollen für die Art („Species/SSP“, Spalte S) jeweils nur die Arten zur Auswahl angeboten werden, die der zuvor konkret ausgewählten Gattung in Spalte O zugeordnet sind. Mit der Auswahl der Art (Spalte S) sollen dann sämtliche Inhalte (auch Leerzellen) der Spalten A bis V aus der ausgewählten Zeile in die entsprechenden Felder des Datenblatts/ der Datenbank „Beispieldatensatz_Funddatenbank“ kopiert werden. Für die Eingabe der weiteren Daten sollte dann für die Auswahl des jeweiligen Staats für „Staat“ (Spalte W) eine Dropdownauswahl aus der Tabelle, bzw. dem Datenblatt „ISO-Codes_Staaten“ („DE Kurzform“, Spalte E) zur Verfügung stehen und mit der Auswahl dann der entsprechende zweistellige ISO-Code aus Spalte C (ISO2) in Spalte X („Staat_ISO 3166 ALPHA 2“) der Zieltabelle übertragen werden. Analog sollte dies für die deutschen Bundesländer (Spalte Y) erfolgen, wobei hier aus Spalte B der Tabelle „Bundesländer ISO-Codes“ ausgewählt werden sollte und der zugehörige ISO-Code aus Spalte A in Spalte Z („ISO 3166:DE“) der Zieltabelle kopiert werden soll. Und dann soll noch für die Eingabe in Spalte AI („Nachweis-/Sammelmethode“) eine Dropdownauswahl der Methoden aus der Tabelle „Nachweis-_Sammelmethode“ zur Verfügung stehen. Alle übrigen Zellen sollen durch direkten Texteintrag ausgefüllt werden. Dabei ist es wichtig, dass auch leere Zellen möglich sind und dass mit vollständigem Ausfüllen der Maske der Datensatz ans Ende der Tabelle (hier) „Beispieldatensatz_Funddatenbank“ geschrieben und das ganze sowohl als *.xlsx wie auch als *.csv gespeichert wird.

Leider habe ich nur sehr wenig Ahnung von VBA und weiß nicht, wie ich hier weiterkomme. Könnt Ihr mir helfen?

Die (vorgenannten) Beispieltabellen, bzw. die Datenmatrix mit den jeweiligen Quellen findet Ihr hier: https://www.herber.de/bbs/user/174603.xlsx

Vielen lieben Dank und Euch allen einen schönen Jahresausklang sowie viele Grüße!
AW: dynamische Eingabemaske aus unterschiedlichen Quellen
Oberschlumpf
Hi,

2 Dinge sind mir aufgefallen:

1)
"... möchte ich das über eine Eingabemaske mit (teilweise) dynamischer Dropdownauswahl machen...."

Deine Bsp-Datei enthält aber noch gar keine Eingabemaske mit (oder ohne) Dropdown-Feldern.
NUR DU weißt, wie die Eingabemaske aussehen soll - demzufolge musst auch du in einer neuen Bsp-Datei die Eingabemaske entweder als Userform oder als zusätzliches Tabellenblatt zur Verfügung stellen.

2)
"...sowohl als *.xlsx wie auch als *.csv gespeichert wird...."

Sobald auch nur 1 VBA-Befehl in deiner Datei verwendet wird, kannst du diese Datei (mit VBA) nur noch als .xlsm-Datei aber nicht mehr als .xlsx-Datei speichern.
Es gäbe zwar die Möglichkeit, Eingabemaske + VBA-Code + Quell-Tabellen in der einen Datei als xlsm-Datei ....unnnnd die Ziel-Datei immer wieder extern als zusätzliche xlsx-Datei zu speichern - aber bei deinem fast-gar-nix-Wissen-von-Excel würd ich dir davon eher erst mal abraten...und alles, was du brauchst, in nur einer einzigen xlsm-Datei zu speichern.

Und auch das Speichern in einer csv-Datei ist nur möglich, wenn in der csv-Datei nur Daten, aber keine Formatierungen, kein VBA-Code gespeichert wird.

3)
...
4)
...
es gibt sicher noch einiges mehr, was mir auffallen könnte, aber bei deiner Art, den gesamten Beschreibungstext ohne Absätze, so aussehen zu lassen, als ob es nur ein einziger Satz ist, hatte ich dann nicht so viel Lust, wirklich alles zu lesen.

Ciao erst mal
Thorsten
AW: dynamische Eingabemaske aus unterschiedlichen Quellen
{Boris}
Hi,

mit Deiner Excelversion ist das ganz gut machbar.
Schau Dir in der Datei in der Funddatenbank die Datenüberprüfung in den Spalten O und S sowie die Hilfsspalten ab AT an.
Die Formel aus AW2 muss so weit runterkopiert werden, wie die Tabelle lang ist. Dort werden die passenden Species in Abhängigkeit des jeweils ausgewählten Genus ermittelt.

Wenn das so prinzipiell gangbar ist, geht auch noch mehr.

https://www.herber.de/bbs/user/174609.xlsx

VG, Boris
dynamische Eingabemaske aus unterschiedlichen Quellen - VBA
{Boris}
Hi,

mit VBA (Change-Ereignis) ist das auch ein Klacks. Damit spart man sich die zeilenweise Auflistung der Species. Stattdessen werden die passenden Species in Abhängigkeit der Auswahl in Spalte O (Genus) nur 1 mal ermittelt. Dazu wird bei jeder Veränderung der Auswahl in Spalte O (Genus) per Change-Ereignis der Genus in die als 'Genus' benannte Zelle AW1 geschrieben. Die Formel in AW2 ermittelt dann damit die passenden Species. Dieser Spill dient dann als Quelle für die Datenüberprüfung in Spalte S (Species) und zwar für die gesamte Spalte S mit =$AW$2#

Wie gesagt: Da geht natürlich noch viel mehr.

https://www.herber.de/bbs/user/174611.xlsm

VG, Boris
AW: dynamische Eingabemaske aus unterschiedlichen Quellen
MaDel
Hallo Boris,

vielen Dank! Ja - sieht prinzipell gangbar aus. Die zugrundliegende Taxadatenbank umfasst insgesamt allerdings weit über tausend Gattungen und viele tausend Arten, weshalb ich hoffe, dass die Kapazitäten von Excel hier nicht an ihre Grenzen stoßen :-)... .

VG
Daniel
Siehe dazu mein Vorschlag mit VBA...oT
{Boris}
VG, Boris
AW: Siehe dazu mein Vorschlag mit VBA...oT
MaDel
Hallo Boris,

alles klar. Und vielen Dank für Deine Unterstützung! Habe versucht, weiter zu kommen, hänge mit meinen rudimentären Kenntnissen der Materie aber irgendwie noch immer in der Luft 🤔😅.

Ich ziehe mich nun aber auch für dieses Jahr zurück und werde den Weg in 2025 antreten 😉.

Viele Grüße und einen guten Rutsch
Daniel
Du hast den Thread auf offen gestellt...
{Boris}
Hi,

...willst Du hier noch weitermachen? Dann bist Du am Zug ;-)

VG, Boris
AW: Siehe dazu mein Vorschlag mit VBA...oT
Alwin Weisangler
Hallo Daniel,

Falls noch Interesse besteht ein Weg via Eingabemaske.
https://www.herber.de/bbs/user/174658.xlsm

Gruß Uwe
Dein Aufwand in Ehren...
{Boris}
Hi Alwin,

...aber das ist in zweierlei Hinsicht (leider) für die Katz:

1. schaut der TE hier wohl gar nicht mehr rein
2. liegen doch 90% der Auswahlergebnisse bereits vor und können daher mittels einfacher Formel in die jeweiligen Spalten übernommen werden (anstatt alles manuell in die Eingabemaske einzugeben).

Nur mit der Auswahl Genus und Species können bereits die gesamten Spalten A bis V gefüllt werden. Der Rest kann ebenfalls großteils so gestaltet werden - hab ich auch (für mich testweise) bereits fertig gemacht - poste es aber nicht, weil das eben für die Katz wäre ;-)

VG, Boris
@Alwin Weisangler
Jan
Hallo

@ Uwe
Bin so eben über deine super Datei gestolpert, die mir so gut gefällt.
Nun die Frage:
Ist es möglich bei deinem Schema auch eine Listbox jeweils hinzu zufügen, und bei klick in eine entsprechende Zeile auszuwählen, sodas die Text oder Comboboxen befüllt werden , wenn was geändert wird das die Änderung in der ensprechenden Zelle auch gespeichert wird??
AW: @Alwin Weisangler
Alwin Weisangler
Hallo,

beispielhaft so:
Ändern und Löschen schaffst du sicherlich selbst, ist eh nur etwas Fleißarbeit. Die Zeilennummer des jeweiligen Datensatzes findest du in der Spalte 0 der Listbox.
https://www.herber.de/bbs/user/174702.xlsm

Gruß Uwe
AW: Dein Aufwand in Ehren...
Alwin Weisangler
@ Boris,

Aufwand ist es wohl eher nicht gewesen. Da in der letzten Zeit kaum mehr etwas dabei war, habe ich dies einfach mal heute als weitere Möglichkeit zusammengestellt.
Es ist auch nur ein Gerüst, da mehr aus den Erklärungen nicht zu lesen war.
Ob da nun der TO oder ein Anderer einen Mehrwert draus zieht keine Ahnung.

Viel Spaß weiterhin und ein gesundes Neues Jahr.

Gruß Uwe
Bin dann mal weg...
{Boris}
Hi,

...guten Rutsch!

VG, Boris
AW: dynamische Eingabemaske aus unterschiedlichen Quellen
MaDel
Hallo Oberschlumpf,
Vielen Dank für die Hinweise und sorry für die unverständliche und unübersichtliche Darstellung sowie für die ggf. unvollständige Formulierung! Wie gesagt habe ich nur sehr wenig Ahnung von VBA und weiß daher bei vielem auch nicht, was ich wie darstellen oder ausführen soll… .
Es geht mir um eine „ganz einfache“ Eingabemaske. Leider kann ich das nicht mit VBA und habe deshalb als Beispiel ein Datenblatt mit einer einfachen Excel-Maske der Datenmappe ergänzt („Eingabemaske“).
Aufgrund der Begrenzungen sind darin nicht alle Spalten berücksichtigt. Alle Felder mit Funktionen habe ich darin aber aufgeführt und versucht, die Ansprüche, bzw. Aufgaben darin in Zeile 4 der Tabelle darzustellen.

https://www.herber.de/bbs/user/174608.xlsx

Die Eingabemaske soll für die Füllung der Tabelle „Beispieldatensatz_Funddatenbank“ dienen.
Quelle für das Befüllen der Spalten A bis V in der Zieltabelle ist die Tabelle „Beispieldatenbank_Lixinae_Taxa“. Die Spalten, bzw. Inhalte der Tabellen in diesen Spalten entsprechen sich.
Die Befüllung soll über eine dynamische Dropdownauswahl erfolgen. Mit Auswahl eines Werts aus Spalte O („Genus“) sollen dynamisch nur die zugehörigen Werte in Spalte S („Species/SSP“) angeboten werden.
Mit konkreter Auswahl des Wertes in Spalte S sollen die gesamten Werte der gemeinten Zellen der Spalten A bis V in die entsprechenden Zellen der Zieltabelle („Beispieldatensatz_Funddatenbank“) kopiert werden. Dabei sind auch Leerzellen möglich.

Quelle für das Befüllen der Spalten W und X ist die Tabelle „ISO-Codes_Staaten“ sein. Die Eingabe von Werten in die Spalte W („Staat“) soll über eine Dropdownauswahl aus den Werten der Spalte E („DE Kurzform“) erfolgen. Mit Auswahl eines konkreten Landes soll auch die Spalte X („Staat_ISO 3166 ALPHA 2“) der Zieltabelle mit dem für das Land entsprechenden Wert aus Spalte C („ISO2“) der Quelle befüllt werden.
Für die Spalten Y und Z ist die Quelle die Tabelle „Bundesländer ISO-Codes“. Hier soll das Ausfüllen analog zum vorherigen erfolgen. Die Auswahl soll dabei für die Spalte Y („Land“) mit Werten aus Spalte B („Bundesland (de)“) vorgenommen werden und mit Auswahl soll der zugehörige Wert aus Spalte A („ISO 3166-2:DE“) der Quelle in Spalte Z („ISO 3166:DE“) der Zieltabelle kopiert werden.

Auch die Eingabe in Spalte AI („Nachweis-/Sammelmethode“) soll über eine Dropdownauswahl möglich sein. Quelle hierfür ist die Tabelle „Nachweis-_Sammelmethode“. Ergänzungen sind dort keine notwendig.

Alle anderen Felder sollen direkt über Texteingabe befüllt werden.

Viele Datensätze sind naturgemäß unvollständig. Leere Felder/Zellen sind daher normal und sollen zugelassen werden.

Vielleicht ist es jetzt etwas klarer und „lösbarer“?!?

Abermals lieben Dank und nochmals einen schönen Jahresausklang, ggf. hoffentlich eine schöne Feier sowie nochmals viele Grüße!
Daniel
AW: dynamische Eingabemaske aus unterschiedlichen Quellen
Oberschlumpf
Hi Daniel,

hmm??? Deine "neue" Eingabemaske is ja nix anderes als nur eine weitere Tabelle in einem neuen Tabellenblatt.

Auch wenn du gleich vllt denkst, dass ich doofe Fragen stelle, muss ich dich trotzdem fragen: Du weißt schon, was genau eine Eingabemaske ist, oder?
In einer Eingabemaske hast du mehrere Eingabe/Auswahlfelder, bei denen du Daten eingibst, oder eben per Dropdown auswählst - aber! -

In einer Eingabemaske gibt es für jeden Wert genau nur EIN Eingabe/Auswahlfeld! - und nach Eingabe/Auswahl aller erforderlichen Daten klickt man auf einen Button, und die Daten werden a) in der eigtl Tabelle (bei dir "Beispieldatensatz_Funddatenbank") eingetragen, und b) in der Eingabemaske wieder gelöscht, damit du neue Daten eingeben/auswählen kannst

....aber deine "neue" Eingabemaske wird ja auch wieder nur mehrere Datenzeilen enthalten, was ja eigtl sinnlos ist, weil die Daten doch in der Tabelle "Beispieldatensatz_Funddatenbank" übertragen werden sollen, oder?!

Eine Eingabenaske KANN z Bsp so aussehen:
https://www.herber.de/bbs/user/174610.xlsx

Schau dir das von mir neu hinzugefügte Tabellenblatt an.

Und nein, nix darin funktioniert! :-) Ich hab einfach nur mal aus "deiner Eingabemaske" alle gleichfarbigen Spalten/Zellen nebeneinander, andersfarbige untereinander dargestellt...als Grafiken...weil alles abschreiben wär mir zu viel Arbeit gewesen.

Und..haste vllt schon gesehen...meine Eingabemaske enthält immer genau nur 1 Zeile, die für Eingabe/Auswahl vorgesehen ist.
Und würde der Button "Speichern" funktionieren, würden nach Klick auf den Button alle DAten in Tabelle "Beispieldatensatz_Funddatenbank" in die jeweils nächste, freie Zeile übertragen werden - und in Eingabemaske wieder alles gelöscht werden.

Vielleicht hat ja wer anders schon Lust, dir mehr weiterzuhelfen.
Bevor ich dazu Lust habe, musst bitte du erst mal eine Eingabemaske liefern, mit der man auch arbeiten kann.

Danke, ich wünsch dir auch n guten Rutsch ins Neue Jahr!
Ob ich heute noch mal zum Antworten komme, weiß ich nicht, aber ich werd wohl noch genug Zeit haben, deine nächste Antwort zu lesen.

Ciao
Thorsten