1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Community,

Ich versuche mich gerade so ziemlich das erste Mal mit VBA, UserForms und Kombinationsfeldern. Ich bin für meine Verhältnisse auch schon recht weit gekommen, doch jetzt stehe ich vor einem für mich nicht mehr lösbaren Problem. Von daher meine Bitte um Hilfe:

Folgendes Vorhaben:

Ich möchte, abhängig davon, was in den beiden ersten Kombinationsfeldern ausgewählt wird, den Inhalt des dritten Kombinationsfeldes beeinflussen.

Beispiel:
Kombinationsfeld 1: Auswahl "3.0"
Kombinationsfeld 2: Auswahl "Controlling"
Inhalt des KF 3: "Text 1", "Text 2" und "Text 3"

Wenn allerdings ...
Kombinationsfeld 1: Auswahl "3.0"
Kombinationsfeld 2: Auswahl "Revision"
Inhalt des KF 3: "Text 4" und "Text 5"
(alles sehr vereinfacht dargestellt)

Meine Lösung sieht bisher wie folgt aus:
KF 1 überträgt den gewählten Wert in Feld A1
KF 2 überträgt den gewählten Wert in Feld A2
Ich habe eine Quelltabelle ("Matrix")
B3:B100 bezieht sich auf die Quelltabelle mit der Formel =WENN('Matrix!'B3 = A1;'Matrix!'B3;0) [gilt für B3, darunter entsprechend angepasst]
C3:C100 bezieht sich auf die Quelltabelle mit der Formel =WENN('Matrix!'C3 = A1;'Matrix!'C3;0) [gilt für C3, darunter entsprechend angepasst]
A3:A100 hat die Formel =WENN(UND(B3>0;C3>0);ZEILE();0) [gilt für A3, darunter entsprechend angepasst]
In Spalte D der Quelltabelle stehen die gesuchten "Text 1, Text 2,..." Entsprechend die Formel (s.o.): =WENN(A3>0;'Matrix!'D3;0)
Soweit funktioniert auch noch alles!!!

Für das Kombinationsfeld 3 habe ich jetzt folgendes Script geschrieben:


Private Sub UserForm_Initialize()
ActiveWorkbook.Sheets("Tabelle1").Activate
With cboUserStory
Dim i
For i = 3 To 100
If Cells(i, 1) > 0 Then
.AddItem Cells(i, 4)
End If
Next i
End With
End Sub


Doch wenn ich das UserForm starte ist darin nichts zu finden. Meine Vermutung ist, dass sich das Script, welches tatsächlich in eine ganze Reihe von Scripts eingebettet ist, ganz zu Anfang seine Werte holt und nicht erst nach der "Veränderung" der Zieltabelle durch KF 1&2.
Kann ich irgendwie in oben stehendes Script einen Befehl einbauen, dass er sich beim Öffnen des KF die Werte ziehen soll?

Hoffe, dass meine Schilderung verständlich war und ich nicht direkt zu viele potenzielle Helfer mit zu vielen Details abgeschreckt habe. Herzlichen Dank schon mal an dieser Stelle für eure Hilfe,

Tobi

P.S.: @Coros: Ich habe dein Beispiel auf deiner HP gesehen und mir auch einige Anregungen daraus für den Rest geholt. Doch so ganz entsprach es doch nicht meinen Bedürfnissen.

1 Antwort

0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hallo Tobi...

probier den Code statt in : <Sub UserForm_Initialize>
mal im Ereigniss <Sub UserForm_Activate>

keine Ahnung ob es Dir hilft...

Ich bringe dort jedenfalls Abläufe unter, die vor dem ersten
Klick ausgeführt werden sollen.

Gruß
Kauz
...