Mein Ziel ist es zu prüfen ob eines der drei Label angehakt ist, dann wäre alles ok und wenn keines angehakt ist, eine Fehlermeldung kommt.
Derzeit prüfe ich 3 Label indem ich sie einzeln aufführe.
dazu nutze ich diesen Code:
Private Sub Label8_Click()
If Label1.Caption = Chr(163) And Label2.Caption = Chr(163) And Label3.Caption = Chr(163) Then
MsgBox "Die rot markierten Felder sind Pflichtfelder," & vbCrLf & "diese bitte zuerst ausfüllen" _
, vbOKOnly, "Fehlermeldung"
With Sheets(11)
.Unprotect
.Range("D7, D9, D11, D13").Interior.ColorIndex = 3
For i = 1 To 3
Set obj = Sheets(11).Shapes("Label" & i)
obj.DrawingObject.Object.BackColor = 12648447
Next i
.Protect
End With
Exit Sub
End If
End Sub
Das funktioniert einwandfrei.Würde ich es aber in der Schleife machen, frage ich ab, ob alle drei Label Blank sind oder nicht.
Beispiel hierzu:
Private Sub Label8_Click()
For i = 1 To 3
Set obj = Sheets(11).Shapes("Label" & i)
If obj.DrawingObject.Object.Caption = Chr(163) Then
obj.DrawingObject.Object.BackColor = 12648447
MsgBox "Die rot markierten Felder sind Pflichtfelder," & vbCrLf & "diese bitte zuerst ausfü _
llen", vbOKOnly, "Fehlermeldung"
With Sheets(11)
.Unprotect
.Range("D7, D9, D11, D13").Interior.ColorIndex = 3
.Protect
End With
Exit Sub
End If
Next i
End Sub
Hier würde geprüft ob alle Label angehakt sind, das ist falsch.Kurzum ich würde es gern in einer Schleife haben, da ich einige Abfragen über bis zu 15 Label habe und diese nicht einzeln aufführen möchte.
Hat jemand eine Idee?
Liebe Grüße Lisa