Das ginge z.B. so:
Option Explicit
Public Enum RepairEnum
RepairNone = 0
'Level 1
RepairA = 1 '2^0
RepairB = 2 '2^1
RepairF = 4 '2^2
RepairG = 8 '2^3
RepairAB = RepairA Or RepairB
'Level 2
RepairAF = RepairA Or RepairF
RepairBF = RepairB Or RepairF
RepairAG = RepairA Or RepairG
RepairBG = RepairB Or RepairG
'Level 3
RepairABF = RepairA Or RepairB Or RepairF
RepairABG = RepairA Or RepairB Or RepairG
RepairBFG = RepairB Or RepairF Or RepairG
RepairAFG = RepairA Or RepairF Or RepairG
RepairABFG = RepairA Or RepairB Or RepairF Or RepairG
End Enum
Public Sub Levelausgabe()
Dim enmRepair As RepairEnum
enmRepair = RepairNone
With Worksheets("Tabelle1")
If Range("E3").Value = 1 Then enmRepair = enmRepair Or RepairA
If Range("E8").Value = 1 Then enmRepair = enmRepair Or RepairB
If Range("E13").Value = 1 Then enmRepair = enmRepair Or RepairF
If Range("E18").Value = 1 Then enmRepair = enmRepair Or RepairG
End With
Select Case enmRepair
Case RepairA, RepairB, RepairF, RepairG, RepairAB
Call MsgBox("Level 1", vbInformation, RepairEnum2String(enmRepair))
Case RepairAF, RepairBF, RepairAG, RepairBG
Call MsgBox("Level 2", vbInformation, RepairEnum2String(enmRepair))
Case RepairABF, RepairABG, RepairBFG, RepairAFG, RepairABFG
Call MsgBox("Level 3", vbInformation, RepairEnum2String(enmRepair))
Case RepairNone
Call MsgBox("Keine Reparatur", vbExclamation)
Case Else
Call MsgBox("Level ?", vbExclamation, "Unbekannt")
End Select
End Sub
Public Function RepairEnum2String(Repair As RepairEnum) As Variant
Select Case Repair
Case RepairA: RepairEnum2String = "RepairA"
Case RepairB: RepairEnum2String = "RepairB"
Case RepairF: RepairEnum2String = "RepairF"
Case RepairG: RepairEnum2String = "RepairG"
Case RepairAB: RepairEnum2String = "RepairAB"
Case RepairAF: RepairEnum2String = "RepairAF"
Case RepairBF: RepairEnum2String = "RepairBF"
Case RepairAG: RepairEnum2String = "RepairAG"
Case RepairBG: RepairEnum2String = "RepairBG"
Case RepairABF: RepairEnum2String = "RepairABF"
Case RepairABG: RepairEnum2String = "RepairABG"
Case RepairBFG: RepairEnum2String = "RepairBFG"
Case RepairAFG: RepairEnum2String = "RepairAFG"
Case RepairABFG: RepairEnum2String = "RepairABFG"
Case Else: RepairEnum2String = Empty
End Select
End Function
Grüße
|