Eine Bedingung in Abhängigkeit von Textfeldern

Hallo,

ich möchte in einem Formular mehrere Textfelder ausfüllen können
von denen einige Wichtig sind.

Nun möchte ich im Formular eine Rote Lampe haben solange ich nicht alle wichtigen Felder ausgefüllt habe und eine grüne sobald dieses der Fall ist.

Diese Anzeige brauche ich aber während ich das Formular ausfülle, nicht erst wenn ich z.B. mit einem Button bestätige.

Vielen Dank im voraus

Udo

Im Change Event oder im LostFocus Event der Textfelder, richtigkeit überprüfen und Ampel dementsprechend anzeigen.

Gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Giuseppe,

ich glaube meine Erklärung war nicht so gut.

Ich möchte diese Lampe dann auf Grün umspringen lassen, wenn von z.B. Zehn Feldern 7 Wichtige ausgefüllt sind.
Also muss ich irgendwie eine „Und“ Verknüpfung machen.

Wenn = Feld 1 und 2 und 3 und 4 und 7 und 8 und 9 ausgefüllt wurden dann = Lampe von Rot auf Grün.

Das mit der Lampe ist kein Problem, aber in dem Change Event geht die Verknüfung ja nicht.

Und, … die Abfrage muss auch laufen wenn jemand zuerst bei Feld 10 anfängt auszufüllen oder gar welche nicht ausfüllt.

Ich hoffe es ist noch zu verstehen was ich meine.

bis dann

Udo

Im Change Event oder im LostFocus Event der Textfelder,
richtigkeit überprüfen und Ampel dementsprechend anzeigen.

Gruss

hallo udo

ich hoffe ich habe dich nun richtig verstanden: hier meine lösung

Private Sub Ampelcheck()

Dim farbe As Long
farbe = vbGreen

If Trim(TextBox1.Text) = „“ Then
farbe = vbRed
End If
If Trim(TextBox2.Text) = „“ Then
farbe = vbRed
End If
If Trim(TextBox3.Text) = „“ Then
farbe = vbRed
End If
If Trim(TextBox4.Text) = „“ Then
farbe = vbRed
End If
If Trim(TextBox7.Text) = „“ Then
farbe = vbRed
End If
If Trim(TextBox8.Text) = „“ Then
farbe = vbRed
End If
If Trim(TextBox8.Text) = „“ Then
farbe = vbRed
End If

meineampel.Color = farbe

End Sub

Private Sub TextBox1_Change()
Call Ampelcheck
End Sub
Private Sub TextBox2_Change()
Call Ampelcheck
End Sub

Private Sub TextBox3_change()
Call Ampelcheck
End Sub

Private Sub TextBox_USW_change()
Call Ampelcheck
End Sub

gruss
Giuseppe

Private Sub Form\_Load ()
 Set Picture1.Picture=LoadPicture (App.Path & "\red.bmp")
End Sub
'
' Ganauso auch für alle anderen Textfelder:
Private Sub txtFeld1\_LostFocus ()
 If alleFelderVollstaendig Then 
 Set Picture1.Picture=LoadPicture (App.Path & "\green.bmp")
 Else
 Set Picture1.Picture=LoadPicture (App.Path & "\red.bmp")
 End If
End Sub
'
'
Private Function alleFelderVollstaendig () As Boolean
 Dim benoetigteFelder () As Variant, c As Control, i As Integer
 'Erstelle Liste mit den Namen der benoetigten Felder (Text oder Comboboxen)
 benoetigteFelder = Array ("txtFeld1", "txtFeld2", "txtFeld7")
 For i = 0 To Ubound (benoetigteFelder)
 For Each c in Me.Controls
 If c.Name = benoetigteFelder(i) And Trim(c.Text) = "" Then Exit Function
 Next
 Next
 alleFelderVollstaendig = True
End Function

Das funktioniert auch dann, wenn ein benötigtes Feld ausgeüllt war und wieder gelöscht wird (wird wieder rot).

cu, holli