Hallo,
ich habe bereits ein Makro geschrieben das Werte aus 4 Zellen zieht und mit diesen Parametern etwas berechnet bzw. optimiert.
Jetzt möchte ich jedoch die 4 Zellen gegen Änderungen absichern, sprich wenn einmal auf einen Button "Berechnen" geklickt wird,
dürfen die Werte in den Zellen zwar geändert werden, jedoch soll dann eine Warnmeldung (MsgBox) erscheinen, dass die
Berechnung dann nicht mehr aktuell ist.
Wie bekomme ich so etwas hin? ich dachte ja eigentlich an etwas wie eine Globale Variable und den Private Sub Worksheet_Change(ByVal Target As Range).
So läuft es aber wohl nicht. Gibt es eine Alternative?
Hier wäre mein erster grober Versuch:
Private changeWarning(1 To 3) As Integer '1 Lagergröße 2 max Kapazität 3 max BestMenge
Public Function increment_changeWarning(pos As Integer) As Integer
changeWarning(pos) = changeWarning(pos) + 1
End Function
Public Function call_changeWarning() As Integer
MsgBox "Achtung! Die Daten der Optimierung könnten" & vbCrLf & "nach dieser Aktion nicht mehr Aktuell sein", vbOKOnly
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells(6, 2) Then
If Cells(6, 2).Value = "" Then
changeWarning(1) = 0
ElseIf Cells(6, 2).Value <> "" And changeWarning(1) <> 0 Then
call_changeWarning
increment_changeWarning 1 'warnung aktivieren
Else
increment_changeWarning 1 'warnung aktivieren
End If
ElseIf Target.Cells(7, 2) Then
If Cells(7, 2).Value = "" Then
changeWarning(2) = 0
ElseIf Cells(7, 2).Value <> "" And changeWarning(2) <> 0 Then
call_changeWarning
increment_changeWarning 2 'warnung aktivieren
Else
increment_changeWarning 2 'warnung aktivieren
End If
ElseIf Target.Cells(8, 2) Then
If Cells(8, 2).Value = "" Then
changeWarning(3) = 0
ElseIf Cells(8, 2).Value <> "" And changeWarning(3) <> 0 Then
call_changeWarning
increment_changeWarning 3 'warnung aktivieren
Else
increment_changeWarning 3 'warnung aktivieren
End If
End If
End Sub
|