Sehr gut Holger, das funktioniert. :-)
Vielen Dank!
Ich wusste nicht das VB auch eine Case-Funktion enhält. Auch für diese Einsicht danke ich Dir. ^^
Das diese Case-Funktion das Problem löst bestätigt wohl, dass Excel dieselben Werte der Zellen einfach verwirrt haben.
C36 enthält die Adresse der Zelle die vor dem Sprung auf D39 ausgewählt war.
AB1 ist mit einer Checkbox verknüpft, die angibt ob die Preise G39 und G40 relativ zu D39 und D40 sind oder seperat geändert werden.
CheckError.IsError ist folgendes :
Function IsError(Area As Range) As Boolean
IsError = False
If Not Intersect(Area, Range("A1:O1")) Is Nothing Then IsError = True
If Not Intersect(Area, Range("A1:A32")) Is Nothing Then IsError = True
If Not Intersect(Area, Range("H1:H32")) Is Nothing Then IsError = True
If Not Intersect(Area, Range("O1:O32")) Is Nothing Then IsError = True
If Not Intersect(Area, Range("A33:O33")) Is Nothing Then IsError = True
For Each Cell In Area
If Cell.Interior.Color = Range("Q11").Interior.Color Then IsError = True
Next Cell
Dim Adresse As String
If Len(Area.Address) > 4 Then
Adresse = Replace(Split(Area.Address, ":")(0), "$", "")
Else
Adresse = Replace(Area.Address, "$", "")
End If
If Range(Adresse).Column > 15 Or Range(Adresse).Row > 32 Then IsError = True
End Function
Und Dateisystem.Speichern ist unerheblich, da die Funktion ja erst nach dem Fehler aufgerufen wird.
Noch eine andere Frage : Warum hast Du mit GoTo gearbeitet ? Wäre es nicht besser die Anweisungen direkt in Case G40 auszuführen?
Liebe Grüße Sam
|