In 4 Untereinanderliegenden Zellen können Werte eingetragen werden. Zu Beginn ist in allen 4 Zellen der Wert 0%
Zelle 1 0%
Zelle 2 0%
Zelle 2 0%
Zelle 2 0%
Bedingung für Eintrag in Zelle 1
-Nur Werte 25%, 50%, 75% und 100% zulässig
-In Zellen 2,3,4 darf kein Wert außer 0% eingetragen sein
Zelle 1 25% 50% 75% 100%
Zelle 2 0% 0% 0% 0%
Zelle 3 0% 0% 0% 0%
Zelle 4 0% 0% 0% 0%
Bedingung bei Eintrag in Zelle 2
-Nur wenn Zeile 1 nicht 0% ist
-Der eingetragene Wert muß größer als der Wert in Zelle 1 sein
-Zelle 1 darf nicht 100% haben
- In Zellen 3,4 darf kein Wert außer 0% eingetragen sein
Bedingung bei Eintrag in Zelle 3
-Nur wenn Zeile 1 und oder Zelle 2 nicht 0% ist
-Der eingetragene Wert muß größer als der Wert in Zelle 2 sein
-Zelle 2 darf nicht 100% haben
- In Zelle 4 darf kein Wert außer 0% eingetragen sein
Bedingung bei Eintrag in Zelle 4
-Nur wenn Zeile 1 und/oder Zelle2 und /oder Zelle 3 nicht 0% ist
-Der eingetragene Wert muß 100% sein
-Zelle 3 darf nicht 100% haben
Ich habe begonnen das Ganze mit 4 Fallunterscheidungen Case 0,1,2,3 und IF-Then bedingungen zu lösen. Bei Zelle 2 war das Ganze schon recht umfangreich, ich befürchte, dass es mir Zelle3 und 4 sehr unübersichtlich wird.
Hall jemand eine Idee wie man etwas besser/cleverer lösen kann?
Case 0
varFortschritt(0) = Tabelle1.Cells(ZelleRow, ZelleCol).Offset(iii, 0) 'Offset 0= iii+0 (iii=0)
varFortschritt(1) = Tabelle1.Cells(ZelleRow, ZelleCol).Offset(iii + 1, 0)
varFortschritt(2) = Tabelle1.Cells(ZelleRow, ZelleCol).Offset(iii + 2, 0)
varFortschritt(3) = Tabelle1.Cells(ZelleRow, ZelleCol).Offset(iii + 3, 0)
If varFortschritt(0) setzen Cancel-> 0%
If varFortschritt(1) >= 0 And varFortschritt(0) = 0 Then
mboxcount = MsgBox("Der Projektfortschritt in Zeile " & iii & " ist: " & varFortschritt(0) * 100 & " %" & vbLf _
& "Projektfortschritt in Zeile " & iii & "auf: " & (varFortschritt(0) + 0.25) * 100 & " % setzen ?", vbOKCancel)
If mboxcount = vbOK Then
Tabelle1.Cells(ZelleRow, ZelleCol).Offset(-iii, 0) = varFortschritt(0) + 0.25
Tabelle1.Cells(ZelleRow, ZelleCol) = varFortschritt(0)
End If
If mboxcount = vbCancel Then
Tabelle1.Cells(ZelleRow, ZelleCol) = 0
End If
'Msgbox: Wert in Zeile 1 auf xx? setzen ? JA->setzen Cancel-> 0%
ElseIf varFortschritt(1)