Clever-Excel-Forum

Normale Version: UserFormLabelsansprechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo

Ich habe bei einer User Form folgendes Problem.
Es handelt sich hier um Labels von denen es in meiner User Form mehrere gibt und der Reihe nach durchnummeriert sind.
Mein Ziel ist es eine Loop zu haben, welcher mir zum Beispiel Rang_Label_R3_1 die letzte Zahl also die eins beim nächsten Durchgang auf zwei setzt, sodass das nächste Label in der Userform angesprochen wird.
Damit ich nicht alles nach einander Auflisten muss

Private Sub Weiter_R3_Click()

If EE_R3_1 > EE_R3_2 Then
Rang_Label_VF_1.Caption = Rang_Label_R3_1

Else
Rang_Label_VF_1.Caption = Rang_Label_R3_2
End If

If EE_R3_3 > EE_R3_4 Then
Rang_Label_VF_2.Caption = Rang_Label_R3_3
Else
Rang_Label_VF_2.Caption = Rang_Label_R3_4
End If

End Sub

Ich hoffe es kann mir hier Jemand helfen
Gruss Matthias
Hallo Matthias,

ich habe Deinen Wunsch nicht so ganz wirklich verstanden, aber wenn ich
nicht ganz falsch liege, dann würde ich eine Laufvariable einbauen, die in
einer Hilfszelle (ist ausblendbar) bei jedem Durchlauf den Wert um 1 erhöht.

Wenn Du von mir weitere Hilfe erwartest, erwarte ich im Gegenzug von Dir
eine Datei, kein noch so schönes Bild, zum Testen.
Hallo,

ich hab es auch nicht so ganz begriffen, aber ich versuch es einfach mal ...

Du kannst ein Control innerhalb einer Userform über die Controls-Collection ansprechen.

Ich habe dir nur mal den Code für die erste Zeile aufgeschrieben, da ich nicht weiß, wie deine Controls genau zusammenhängen.
Code:
Private Sub Weiter_R3_Click()
Static i As Long

If i = 0 Then i = 1

If Me.Controls("EE_R3_" & i) > Me.Controls("EE_R3_" & i + 1) Then
   Rang_Label_VF_1.Caption = Rang_Label_R3_1
Else
   Rang_Label_VF_1.Caption = Rang_Label_R3_2
End If

If EE_R3_3 > EE_R3_4 Then
   Rang_Label_VF_2.Caption = Rang_Label_R3_3
Else
   Rang_Label_VF_2.Caption = Rang_Label_R3_4
End If

If i > 10 Then i = 0 Else i = i + 1
End Sub
Die Deklaration von i als 'Static' weißt VBA an, die Variable nach der Beendigung des Sub's nicht zu löschen, wie das normalerweise gemacht wird.
Die Zahl 10 in der letzten Zeile, stellt die Anzahl deiner Durchläufe dar, nach denen wieder die erste Reihe dran ist.

Begreifst du, was ich damit sagen will ?
Es hat noch nicht ganz geklappt.
Ich habe jetzt die Datei dazugetan.
Ich hoffe es ist jetzt verständlicher wie ich es meine.
Es handelt sich um ein Tunierbaum.
So wie ich es jetzt habe klappt das ganze für die ersten beiden weiterkommenden Spieler.

gruss mats
Hallo,

da halte ich einen Loop für übertrieben ... und so richtig ansteigend ist die Serie auch nicht ... dabei hast du immer die gleichen Bezüge ... die 8 Vergleiche einmal runterschreiben und gut ...

Im Viertelfinale sind es ja dann nur noch halb so viele ... :19:
Klar ist das nicht all zu grosser Aufwand habe ich hätte einfach auch gerne gewusst ob das geht oder nicht.
So etwas dazu lernen und so. :)