Comboboxen abhängig voneinander füllen

17/07/2016 - 11:41 von Hans.Alborg | Report spam
Hallo,

Mein neues Projekt: bestimmte Dateien (z.B. Medien) in ihren Ordnern zu
erfassen incl. deren Eigenschaften und sie in eine Tabelle zu schreiben
(als Archiv).

Diese Tabelle soll jedesmal neu erstellt werden je nach Art der Eintràge.

Auf meiner Userform habe ich dafür aus Platzgründen ein Multipagen-
Steuerelement gesetzt wobei jede der 6 Pagen nur eine Combobox enthàlt.

Jede der Pagen steht für eine Tabellenspalte, so daß ich Titel, Größe,
lfd.Nr usw. mit den Comboboxen in beliebige Spalten bekomme.

Dazu muß jede Combobox eine Liste aller Spaltennamen enthalten.

Aber was ich schon irgendwo gewàhlt habe, soll bei den anderen Boxen
nicht mehr vorkommen!

Ich könnte das selbst hinbekommen, mit etlichen Schleifen, stehe bei
meinen Versuchen bisher aber auf dem Schlauch (Arrays, Liste auf einer
Hilfsabelle). Für die Suchmaschine ist mein Anliegen wohl auch zu
kompliziert.

Weiß jemand wie das einfacher zu erledigen ist bzw. wo ich Beispiele
finden kann?

TIA,

Hans
 

Lesen sie die antworten

#1 Claus Busch
17/07/2016 - 12:15 | Warnen spam
Hallo Hans,

Am Sun, 17 Jul 2016 11:41:58 +0200 schrieb Hans.Alborg:

Auf meiner Userform habe ich dafür aus Platzgründen ein Multipagen-
Steuerelement gesetzt wobei jede der 6 Pagen nur eine Combobox enthàlt.

Jede der Pagen steht für eine Tabellenspalte, so daß ich Titel, Größe,
lfd.Nr usw. mit den Comboboxen in beliebige Spalten bekomme.

Dazu muß jede Combobox eine Liste aller Spaltennamen enthalten.

Aber was ich schon irgendwo gewàhlt habe, soll bei den anderen Boxen
nicht mehr vorkommen!



ich würde Listboxen dazu verwenden, denn die kann man mit einem Array
befüllen.
So auf die Schnelle und nur für 3 Listboxen:

Option Explicit
Public strWerte As String, strWerte1 As String, strWerte2 As String,
strWerte3 As String

Private Sub ListBox1_Change()
strWerte1 = Replace(Replace(strWerte, ListBox1.Value, ""), ",,", ",")
ListBox2.List = Split(strWerte1, ",")
End Sub

Private Sub ListBox2_Change()
strWerte2 = Replace(Replace(strWerte1, ListBox2.Value, ""), ",,", ",")
ListBox3.List = Split(strWerte2, ",")
End Sub

Private Sub UserForm_Initialize()
strWerte = "Titel,Größe,lfd.Nummer,Artist,Komponist"
ListBox1.List = Split(strWerte, ",")
End Sub

Es wird immer der gewàhlte Wert aus dem String entfernt und dieser als
Array an die nàchste listbox übergeben. Allerdings ist es dazu notwendig
die Listboxen in ihrer Reihenfolge zu àndern.


Mit freundlichen Grüßen
Claus
Windows10
Office 2016

Ähnliche fragen