Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For each - zählt falsch ?!

For each - zählt falsch ?!
06.09.2007 09:00:20
Roland
Hallo
Ich hab da ein Problem mit einer For each Schleife die wie folgt ausschaut:

Public Sub UserForm_Fuellen()
Dim strMesswert As String
Dim i As Integer
Dim ctOptButton2 As Control
Set ctOptButton2 = UserForm1.fraMesswert2()
i = 49
For Each ctOptButton2 In UserForm1.fraMesswert2.Controls
'MsgBox ctOptButton2.Name
'MsgBox strMesswert
ctOptButton2.Caption = strMesswert
i = i + 1
Next

Eigentlich sollten doch die Objekte im Frame anhand des Name-Feldes durchlaufen werden, oder?
Die Objekte heissen:
OptionButton28
OptionButton29
OptionButton30
OptionButton31
..
OptionButton40
..
OptionButton50
OptionButton51
OptionButton52

Doch wenn ich das Makro laufen lasse und mir mit hilfe der MsgBox die Namen des jeweils ausgelesenen Objekts anzeigen lasse, stelle ich fest das die Reihenfolge folgende ist;
OptionButton30
OptionButton40
OptionButton28
OptionButton29
OptionButton31
..
OptionButton39
OptionButton41
..
OptionButton51
Woran könnte das liegen? Seltsamerweise funktioniert es bei OptionButton1 - 27 in der richtigen Reihenfolge!
Vielen Dank für euere Hilfe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For each - zählt falsch ?!
06.09.2007 09:16:00
bst
Morgen,
M.E. werden die Controls eher in der Reihenfolge ihrer Erstellung durchlaufen. Solange Du nicht per Hand eingreifst (Namen änderst oder Objekte löscht) sollte das auch durchnummeriert sein.
cu, Bernd

AW: For each - zählt falsch ?!
06.09.2007 10:51:27
fcs
Hallo Roland,
wie von Bernd schon erwähnt wird die Reihenfolge von Steuerelementen in der Controls-Liste beim Anlegen der Elemente festgelegt unabhängig vom Typ und Namen. Auch durch nachträgliches ändern des Namens eines Steuerelements ändert sich die Reihenfolge nicht mehr.
Wenn du vielen Steuerelementen Wert/Eigenschadften über Schleifen zuweisen möchtest, dann geht das meist nur noch über den Namen. Sinnvoller Weise legt man für diese Steuerelemente im Eigenschaftenfenster dann auch besondere Namen fest, die man dann von 1 bis x fortlaufend durchnummeriert (ohne Lücken!!!!). (z.B: OB_Messwert1, OB_Messwert2 usw.). So kann man die Elemente direkt ansprechen.
Ändere deine Prozedur wie folgt, dann sollte die Zuordnung funktionieren. In ähnlicher Weise kann man dann ggf. auch die Eigenschaften der Steuerelemnte einer sollchen Gruppe zur Formularauswertung abfragen.
Gruß
Franz

Public Sub UserForm_Fuellen()
Dim strMesswert As String
Dim i As Integer
Dim ctOptButton2 As Control
i = 49
For Z = 1 To UserForm1.fraMesswert2.Controls.Count
Select Case Z
Case 0 'hier Ausnahmen, Nummern oder Nummernbereich festlegen
'do nothing
Case Else
strMesswert = Application.ActiveWorkbook.Sheets("Tabelle1").Cells(i, 2).Value
Set ctOptButton2 = UserForm1.Controls("OptionButton" & Format(Z, "0"))
ctOptButton2.Caption = strMesswert
If MsgBox("Name-Button: " & ctOptButton2.Name & vbLf & _
"Wert-Zelle: " & strMesswert, vbOKCancel) = vbCancel Then Exit For
i = i + 1
End Select
Next
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige