Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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

IF-Funktion und With-Anweisung in Initialize-Sub

IF-Funktion und With-Anweisung in Initialize-Sub
21.11.2023 17:58:39
DiMein
Hallo und guten Abend.

Ich möchte über eine Zelle auf einem Datenblatt gesteuert die Dropdownliste auf einer UserForm befüllen lassen. Es soll, wenn die Zelle einen bestimmten Wert hat die Dropdownliste mit einer Liste gefüllt werden, und wenn die Zelle einen anderen Wert hat, dann soll ein anderer Listeninhalt zur Verfügung stehen.

Bisher sieht das bei mir so aus:
Private Sub UserForm_Initialize()
'
' Befüllt die DropdownBoxen für die Vereine und die Sportkennzahlen
'
If Worksheet("Teilnehmerliste").Range("F1").Value = Halle Then
With Teilnehmerliste.DropdownSpoKennz
.AddItem "Klasse 10"
.AddItem "Klasse 11"
.AddItem "Klasse 12"
.AddItem "Klasse 13"
.AddItem "Klasse 14"
.AddItem "Klasse 15"
End With
'
Else: Worksheet("Teilnehmerliste").Range("F1").Value = Draussen
With Teilnehmerliste.DropdownSpoKennz
.AddItem "Klasse 20"
.AddItem "Klasse 21"
.AddItem "Klasse 22"
.AddItem "Klasse 23"
.AddItem "Klasse 24"
.AddItem "Klasse 25"
End With
End If
.
.
.
End Sub

Das ist nur der betroffene Auszug. Ich habe die ganze Datei aus hochgeladen. Darin ist aber noch einiges zu tun. Bisher steht erst Mal nur das Layout. Einige Makros fehlen da noch. Hoffe, es hilft trotzdem mein Problem zu erkennen.

Besten Dank schon Mal vorab und einen schönen Abend noch.

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

Betreff
Datum
Anwender
Anzeige
Dateilink in den Beitrag einfügen. owt
21.11.2023 18:09:11
ralf_b
AW: Dateilink in den Beitrag einfügen. owt
21.11.2023 23:08:16
ralf_b
https://www.herber.de/bbs/user/164498.xlsm

ich habe die Dropdowns per intelligente Tabelle gefüllt. siehe Namensmanager und Dropdownsblatt.
Die Datensätze werden eingefügt.
Werte der Optionbuttons habe ich angepasst.
Die Auswahl der Vereinsnummer ist nun ebenfalls im Dropdownsblatt untergebracht. Sowas schreibt man nicht hartkodiert in den Code.
Fehlerbehandlungen bei falsche Eingaben mußt du dir selbst definieren.
Anzeige
AW: IF-Funktion und With-Anweisung in Initialize-Sub
21.11.2023 18:19:10
daniel
Hi
das solltest du nicht so programmieren, sondern über eine weitere Tabelle regeln.
erstelle auf einem weiteren Tabellenblatt (bspw "Stammdaten") eine Tabelle.
in der Überschriftenzeile schreibst du die möglichen Inhalte für die Zelle F1 auf dem Blatt "Teilnehmerliste"
also in A1: "Halle", in B1 "Draussen" usw
und schreibe in die Zellen darunter die jeweiligen Klassen.

weise jetzt der Zelle F1 über die Datenüberprüfung-Liste diese diese Zellen als Quelle zu, also Quelle =Stammdaten!A1:B1
damit ist sichergestellt, dass der Anwender hier keinen Unsinn eingibt.

programmiere dann die Befüllung der Combobox so:

dim Zelle as Range

set Zelle = sheets("Stammdaten").Rows(1).Find(what:=Sheets("Teilnehmerliste").Range("F1").Value, lookat:=xlwhole, lookin:=xlvalues
if Not Zelle is Nothing then
Teilnehmerliste.DropdownSpoKennz.List = Range(Zelle.Offset(1, 0), Zelle.End(xldown)).value
else
Msgbox "ungültige Eingabe in Teilnehmerliste Zelle F1
end if


welche Auswahlmöglichkeiten es für F1 gibt und welche Klassen dann dahinter stehen, regelst du über die Tabelle Stammdaten, ohne dass an der Programmierung was geändert werden muss.

Gruß Daniel


Anzeige
AW: IF-Funktion und With-Anweisung in Initialize-Sub
22.11.2023 12:22:16
daniel
also wenn, dann so

With Teilnehmerliste.DropdownSpoKennz

Select Case Worksheet("Teilnehmerliste").Range("F1").Value
Case "Halle"
.AddItem "Klasse 10"
.AddItem "Klasse 11"
.AddItem "Klasse 12"
.AddItem "Klasse 13"
.AddItem "Klasse 14"
.AddItem "Klasse 15"
Case "Draussen"
.AddItem "Klasse 20"
.AddItem "Klasse 21"
.AddItem "Klasse 22"
.AddItem "Klasse 23"
.AddItem "Klasse 24"
.AddItem "Klasse 25"
Case Else
End select
end With


oder wenn der Unterschied zwischen Halle und Draussen nur die 1 oder 2 ist.
dim x 

dim i as long
x = Application.Match(Worksheet("Teilnehmerliste").Range("F1").Value, Array("Halle", "Draussen"), 0)
for i = 1 to 5
Teilnehmerliste.DropdownSpoKennz.AddItem "Klasse " & x & i
Next


Gruß Daniel
Anzeige
AW: IF-Funktion und With-Anweisung in Initialize-Sub
27.11.2023 18:45:26
DiMein
Hallo ralf_b und Daniel.

Ich war in den letzten Tagen extrem eingespannt, und hatte daher erst jetzt Zeit mir eure Kommentare und Lösungsvorschläge anzuschauen.

Euch beiden einen herzlichen Dank für euer Feedback, und Daniel, ja du hast natürlich Recht. Das mit den Anführungszeichen ist extrem wichtig. Dass ich es aber auch gerade bei den beiden Werten "Halle" und "Draussen" vergessen habe ist schon ziemlich schusselig. Aber ich arbeite an der Minimierung meiner Flüchtigkeitsfehler.

Besten dank noch Mal.

MfG
AW: IF-Funktion und With-Anweisung in Initialize-Sub
21.11.2023 21:22:26
DiMein
Hi Daniel.

Danke für deinen Hinweis. Um der Wahrheit die Ehre zu geben, hatte ich das vorher schon Mal genauso angefangen und dann auf dem Register "Teilnehmerliste" in den jeweiligen Zellen die Dropdown-Menüs angelegt. Dann habe ich mich aber der VBA-Programmierung aus jüngeren Jahren erinnert und Beiträge gesucht, wie ich diese ganze Sache rein auf der Basis von VBA lösen kann, damit ich eben NICHT mit zusätzlichen Registern und Tabellen arbeiten muss.

Aber trotzdem recht herzlichen Dank. Falls also meine Vorstellung technisch doch nicht umsetzbar sein sollte, greife ich sehr gerne auf deine Lösung zurück.

Einen schönen Abend noch.
Anzeige
AW: IF-Funktion und With-Anweisung in Initialize-Sub
21.11.2023 22:20:07
daniel
Naja dein Prinzip funktioniert auch.
Man muss halt mehr programmieren und die entsprechenden Kenntnisse haben.

Wer rein mit VBA arbeiten will, sollte wissen, welche Bedeutung Anführungszeichen im Code haben, wann man sie setzten muss und wann nicht.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige