VB - Variablen in TextBox-Name

hondocrx

Erfahrenes Mitglied
Hi!

Ich habe hier eine Tabelle mit ner ganze Menge Textboxen.

Nun möchte ich auswerten ob in eine bestimmter wert einer Zeile mindestens 7 ist.
Wenn nicht sol die ganze Zeile die Schriftfarbe rot bekommen.
Bis jetzt löse ich es so:


Code:
If (Val(txtZeile1SPalte4.Text) < 7) Then
  txtZeile1SPalte1.ForeColor = vbRed
  txtZeile1SPalte2.ForeColor = vbRed
  txtZeile1SPalte3.ForeColor = vbRed
  txtZeile1SPalte4.ForeColor = vbRed
end if

If (Val(txtZeile2SPalte4.Text) < 7) Then
  txtZeile2SPalte1.ForeColor = vbRed
  txtZeile2SPalte2.ForeColor = vbRed
  txtZeile2SPalte3.ForeColor = vbRed
  txtZeile2SPalte4.ForeColor = vbRed
end if


If (Val(txtZeile3SPalte4.Text) < 7) Then
  txtZeile3SPalte1.ForeColor = vbRed
  txtZeile3SPalte2.ForeColor = vbRed
  txtZeile3SPalte3.ForeColor = vbRed
  txtZeile3SPalte4.ForeColor = vbRed
end if



usw


In meinen Augen etwas unelegant.

Ich möchte ganz gern alle Zeilen per Schleife (14 mal)durchlaufen


Code:
for i = 1 to 14

If (Val(txtZeile1SPalte4.Text) < 7) Then
  txtZeile1SPalte1.ForeColor = vbRed
  txtZeile1SPalte2.ForeColor = vbRed
  txtZeile1SPalte3.ForeColor = vbRed
  txtZeile1SPalte4.ForeColor = vbRed
end if

next

Wie muß ich es umschreiben damit in Zeile1SPAlte1 irgendwo die Variable I vorkommt.


MfG
 
Hi,

warum hast Du die Textfelder nicht mit einem Index versehen. Dann würde das problemlos gehen. So wie Du Deine Form jetzt aufgebaut hast, sehe ich da wenig Chancen.

Gruß
Das Orakel
 
Hi Orakel!

Kannst Du etwas genauer erklären wie es mit dem Index von TextBoxen funktioniert.
Ein Link würde mir schon reichen.
Bisher habe ich diese möglichkeit weder gekannt noch benutzt.



MfG
 
Wenn du eine Textbox kopierst, dann wird automatisch ein Array von Textboxen angelegt, mit dem ursprünglichen Namen der kopierten Textbox.
Prinzipiell müssen alle Textboxen nur gleich heißen und dann kannst du über die Eigenschaft Index den jeweiligen Textboxen auch manuell ihren Index zuweisen.

Dann kannst du ganz einfach über eine Schleife deine Textboxen durchlaufen:
Code:
For i = 0 To 4
   TextBox(i).Text = "Ich bin Textbox " & i
Next
 
Zurück