Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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
Inhaltsverzeichnis

Einlesen von Daten in Listenfeld in UF

Einlesen von Daten in Listenfeld in UF
18.11.2020 09:44:01
Daten
https://www.herber.de/bbs/user/141655.xlsm
Ich versuche mich an einer Liste (Personalverwaltung).
In Tabelle 2 befinden sich die Hilfstabellen wie (Sprachen (A), Qualifikationen(B) und Verwendung (C).
In Tabelle 1 werden mittels Userform1 die Mitarbeiterdaten (Textboxen, Optionsfelder und Listboxen mit Mehrfachauswahl) eingetragen.
Für den Fall, dass sich Mitarbeiterdaten ändern, habe ich eine Userform2 erstellt.
Das einlesen der Textboxen und der Optionsfelder funktioniert ganz gut.
Ich habe aber ein Problem die Listenfelder in die Userform2 einzulesen und dabei auch die ausgewählten Punkte der jeweiligen Listenfelder aus UF1 in der UF2 anzuzeigen und gegebenfalls abzuändern.
Also wenn z.B. bei Mitarbeiter AS die Sprachen englisch und italienisch gesepeichert wurden, dann möchte ich diese ausgewählten Kriterien gerne in Userform 2 im jeweiligen Listenfeld als aktiviert angezeigt bekommen und dieses Listenfeld durch hinzufügen oder entfernen von Kriterien abändern und überspeichern.
Is das überhaupt möglich?
Ich bin für jede Hilfe dankbar.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 10:22:57
Daten
Hallo,
wenn ich mir den Kommentar erlauben darf: Dafür UF zu verwenden ist wie von hinten durch die Brust ins Auge. Userforms sind aus meiner Erfahrung in den meisten Fällen Spielerei.
Tipp 1:
Verwende eine Tabelle mit Listen zu verwenden. In der Beispieldatei gelb markiert. Listen erstellt man über Daten - Datentools - Datenüberprüfung - Zulassen: Liste, Quelle: Einträge, die in der Liste angezeigt werden. Hier z.B. Tabelle2!A1:A12 für Sprachen.
Tipp 2:
Benutze pro Information eine Zelle, z.B. für Vorname und Nachname. Das macht die Sortierung und Verarbeitung der Daten in Folgeprozeduren einfacher.
Beispiel-Datei: https://www.herber.de/bbs/user/141657.xlsx
Anzeige
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 10:41:20
Daten
Danke für den Tipp.
Ich würde aber gerne wissen, ob es eine Möglichkeit gibt, das Listenfeld so, wie angefragt, in die Userform 2 einzubinden.
und ob das möglich wäre.
Die Liste die ich hier erstellt habe, ist nur eine Beispieldatei, da die Originalliste viel größer und umfangreicher ist, und Daten enthält, die ich nicht öffentlich stellen möchte. In der Originaldatei sind Familienname und Vorname in separaten Spalten. Wollte sie nur nicht unnötig groß gestalten, um meine Fragen zu verdeutlichen. Ich glaube halt, dass eine UF für mich schöner zu bearbeiten ist, als eine Liste mit unzähligen Spalten zu suchen. Die Spracheneinträge in der Userform sind auch variabel gestaltet (also man kann Sprachen in die Liste hinzufügen und sie werden im Listenfeld der UF1 mitübernommen).
Wenn es nicht möglich ist, dann muss ich ohnehin auf die Listenversion zurückgreifen.
Trotzdem nochmals danke für die Alternative
Anzeige
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 13:10:12
Daten
Die Spracheneinträge in der Userform sind auch variabel gestaltet (also man kann Sprachen in die Liste hinzufügen und sie werden im Listenfeld der UF1 mitübernommen).
Das geht auch mit meiner Variante. Dann musst du die dynamische Listen erstellen. Methode dazu findest du hier: https://www.tabellenexperte.de/dynamische-drop-down-listen-teil-1/
Dann fügst du deine Daten - wie in der Beispieldatei gezeigt - in eine Mastertabelle ein und filterst und sortierst darüber. Dann ist jede Größe hand­hab­bar.
Eine solche Liste
- ist wesentlich weniger fehleranfällig
- "überlebt" jeden Mitarbeiter nach einem möglichen Ausscheiden
Generell gilt, dass man VBA vermeiden sollte, wenn es auch mit den herkömmlichen Werkzeugen, die Excel mitbringt, umsetzbar ist. Darüber hinaus ist es ein Abwägen zwischen Nutzen und Aufwand.
Aber ich nehme an, dass du dir das jetzt in den Kopf gesetzt hast. Und das kann ich irgendwie auch verstehen. :-)
Anzeige
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 10:54:59
Daten
wie sieht denn die UF aus wo das hin soll?
Alles kein Ding wenn man das ausprobieren kann.
Wir haben schon alle möglichen Personal- oder Lagerverwaltungs UF's gsehen.
Nur keine falsche Scham.
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 11:52:12
Daten
https://www.herber.de/bbs/user/141660.xlsm
Ich habe mal die personenbezogenen Daten rausgenommen und durch einige Fakedaten ersetzt. (sind dann im Original viele mehr Personendaten zum eintragen)
So schaut einmal das Konzept aus.
(ist zwar im Code ersichtlich, aber das PW für UF2 = "1234").
wie gesagt, ist mal ein Konzept.
Danke für die Hilfe
Anzeige
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 12:23:14
Daten
Hmm, ne Menge Arbeit und schön bunt.
Warum eine separate Bearbeiten UF?
Die Datenspeicherung erfolgt schon beim Anlegen. Dieses könntest du in eine Unteroutine auslagern und mittels Parameter(z.b. ZeilenNr) übergibst du z.b. einen Wert der regelt ob es eine Neuanlage oder nur Änderung ist.
Sich wiederholdenen Code auslagern! Redundanzen vermeiden.
die Eingabe der Sprachkenntnisse ist dann schon per Schleife richtig erfolgt.
Ein weiteres aber nur kleines Probelm sehe ich darin das du die Einfügespalten im Code verteilt hardcodiert hast. Zur besseren Pflege wären hier Variablen oder Konstanten gut, die zentral verwaltet werden könnten. Es kann immer mal eine Spalte dazu kommen oder wegfallen.
gruß
RB
Anzeige
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 12:35:42
Daten
OK, danke.
Ich habe die 2. UF angelegt, da weitere Kriterien dazugekommen sind, wie (abkommandiert oder nicht mehr aktiv.)
Da ich mit meinen VBA Kenntnissen noch weit unter den Deinen bin, ist mir das mit dem Einbau von weiteren Konstanten und Variablen. Daher dachte ich, dass ich, so wie ich es bis hierher geschafft habe, durch das Einbetten der Listbox in die 2. UF schaffen kann.
Anscheinend dürfte es doch nicht so einfach sein, wie ich es mir gedacht habe. Habe mir gedacht, dass es in etwa, so ähnlich funktionieren würde, wie bei der Combobox oder den Optionsfeldern.
AW: Einlesen von Daten in Listenfeld in UF
18.11.2020 13:38:01
Daten
Naja soweit her sind meine Kenntnisse auch nicht.
Deshalb mein Rat die Routinen zusammenzufassen. Dann findet sich später leichter ein Fehler. Sich in einen früheren Code einzulesen ist auch nicht immer lustig.
Die Prüfungen auf Eingabefehler brauchst du dann nur einmal.
Für gleiche Controls, kannst du gleiche Prüfungen ebenfalls in eine Subroutine auslagern.
Und sprechende Variablen benutzen.
hier mal ein beispielhafter Aufruf einer Subroutine mit Übergabe vom Parametern

Set wsdata = Worksheets("Startseite")
writeSelected ListBoxSprache, wsdata.Range(Cells(last, 52), Cells(last, 55))
und hier die routine

Function writeSelected(cntrl As Control, rng As Range)
Dim i As Integer, cnt As Integer
With cntrl
For i = 0 To .ListCount - 1
If .Selected(i) Then
rng.Cells(cnt) = .List(i)
If cnt + 1 = rng.Cells.Count Then Exit For 'Ausstieg aus Schleife wenn Rangegröße  _
erreicht
cnt = cnt + 1
End If
Next i
End With
Set rng = Nothing
End Function

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige