Clever-Excel-Forum

Normale Version: TextBoxen in Liste/Array schreiben und dann durchlaufen lassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey, erstmal der Code:
Code:
Private Sub CommandButton1_Click()
Dim namen, TextBoxen As Variant
Dim findname, findmonat As Range
Dim bier, icetea, iceteapreis, flaschenBier, flaschenTea, rot, gruen, bierrow, tearow, gesamtrow As Integer
Dim bierpreis As Double
TextBoxen = Array(Alexander, Bader, Gluns, Gromak, Hammerbacher, Hinrichs, Jäger, Kärcher, Kümmerle, Lehnau, Lieb, Monturiol, Rebelato, Seiffert, Szöbb, Walter, Zängle, Kauer)
rot = 38
gruen = 35
Worksheets("Bierkasse").Activate
bierpreis = 1.5
iceteapreis = 1
namen = Array("Alexander", "Bader", "Gluns", "Gromak", "Hammerbacher", "Hinrichs", "Jäger", "Kärcher", "Kümmerle", "Lehnau", "Lieb", "Monturiol", "Rebelato", "Seiffert", "Szöbb", "Walter", "Zängle", "Kauer")


For Each Element In namen:
    For Each TextBox In TextBoxen:
        Set findname = Columns(1).Find(what:=Element, MatchCase:=False) ' Wer soll gesucht werden?
        If Cells(findname.Row, bierrow).Value > 0 Or Cells(findname.Row, tearow).Value Then ' hat derjenige überhaupt was getrunken?
            flaschenBier = Cells(findname.Row, bierrow)
            flaschenTea = Cells(findname.Row, tearow)
            Me.TextBoxen.Value = flaschenBier * bierpreis + flaschenTea * iceteapreis 'Berechnung des Gesamt Konsums
            Me.TextBoxen.Value = Format(Me.TextBox3.Value, "###.0##€") 'In TextBox wird formatierter Betrag mit € geschrieben
        'If Cells(findname.Row, gesamtrow).Interior.ColorIndex = 35 Then 'Hier soll geschaut werden ob bezahlt wurde, d.h ob die Celle grün ist oder rot
            'Me.Element.Value = True
        'End If
    End If
    Next
Next
Ich möchte erstmal alle Namen in der Liste "namen" durchlaufen. Dann möchte ich anhand dieser Namen etwas in die entsprechende "TextBoxen" was schreiben. Problem ist nur ich kann die TextBox nicht ansprechen indem ich durch ein Array lauf.
Wie geht das richtig ?
Vielen Dank  Undecided

(11.04.2023, 16:50)HängtAufSpiel schrieb: [ -> ]Hey, erstmal der Code:
Code:
Private Sub CommandButton1_Click()
Dim namen, TextBoxen As Variant
Dim findname, findmonat As Range
Dim bier, icetea, iceteapreis, flaschenBier, flaschenTea, rot, gruen, bierrow, tearow, gesamtrow As Integer
Dim bierpreis As Double
TextBoxen = Array(Alexander, Bader, Gluns, Gromak, Hammerbacher, Hinrichs, Jäger, Kärcher, Kümmerle, Lehnau, Lieb, Monturiol, Rebelato, Seiffert, Szöbb, Walter, Zängle, Kauer)
rot = 38
gruen = 35
Worksheets("Bierkasse").Activate
bierpreis = 1.5
iceteapreis = 1
namen = Array("Alexander", "Bader", "Gluns", "Gromak", "Hammerbacher", "Hinrichs", "Jäger", "Kärcher", "Kümmerle", "Lehnau", "Lieb", "Monturiol", "Rebelato", "Seiffert", "Szöbb", "Walter", "Zängle", "Kauer")


For Each Element In namen:
    For Each TextBox In TextBoxen:
        Set findname = Columns(1).Find(what:=Element, MatchCase:=False) ' Wer soll gesucht werden?
        If Cells(findname.Row, bierrow).Value > 0 Or Cells(findname.Row, tearow).Value Then ' hat derjenige überhaupt was getrunken?
            flaschenBier = Cells(findname.Row, bierrow)
            flaschenTea = Cells(findname.Row, tearow)
            Me.TextBoxen.Value = flaschenBier * bierpreis + flaschenTea * iceteapreis 'Berechnung des Gesamt Konsums
            Me.TextBoxen.Value = Format(Me.TextBox3.Value, "###.0##€") 'In TextBox wird formatierter Betrag mit € geschrieben
        'If Cells(findname.Row, gesamtrow).Interior.ColorIndex = 35 Then 'Hier soll geschaut werden ob bezahlt wurde, d.h ob die Celle grün ist oder rot
            'Me.Element.Value = True
        'End If
    End If
    Next
Next
Ich möchte erstmal alle Namen in der Liste "namen" durchlaufen. Dann möchte ich anhand dieser Namen etwas in die entsprechende "TextBoxen" was schreiben. Problem ist nur ich kann die TextBox nicht ansprechen indem ich durch ein Array lauf.
Wie geht das richtig ?
Vielen Dank  Undecided
Also ich dachte das klappt mithilfe von zwei "For Each" Schleifen aber ich denke er erkennt den Type nicht als Objekt an dementsprechend findet er dadurch nicht die TextBox
Ich mag solche alkoholische hochgeladene Beispieldateien.
Hey,
Dein Beitrag bringt mir nicht unbedingt viel.
Was fehlt dir denn um da durchzublicken?
Hey,
Ich präzisiere mal meinen Beitrag etwas vlt. hilft das.
Wie im Betreff geschrieben möchte ich eine Liste an Objekten (TextBoxen) durchlaufen lassen um dann auf diese jeweilig durch folgenden Code zuzugreifen
x ist dabei eben diese Liste
Code:
Me.x.Value = flaschenBier * bierpreis + flaschenTea * iceteapreis 'Berechnung des Gesamt Konsums
Me.x.Value = Format(Me.x.Value, "###.0##€") 'In TextBox wird formatierter Betrag mit € geschrieben
Vielen Dank schonmal für die Hilfe