Hallo Zusammen,
ich möchte einem Makro eine weitere Abfrage hinzufügen, komme aber leider nicht wirklich weiter.
Public TargetText As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyUndo As Boolean
If Target.Cells.Count = 1 Then
If Target.Row >= 2 And Target.Row <= 798 And Target.Value <> "" Then
Select Case Target.Column
Case 13 'Änderung in Spalte "M"
Case Is >= 2, Is <= 20 'Änderung in Spalten
If TargetText <> "" And Target.FormulaR1C1 <> TargetText Then
MyUndo = (MsgBox("Soll der Wert von " & Target.Address(0, 0) & " wirklich geändert werden?" & vbLf & _
vbLf & _
"Nein: " & TargetText & vbLf & _
"Ja: " & Target.Value, vbYesNo + vbQuestion, "Zellweret ändern") = vbNo)
End If
End Select
End If
End If
If MyUndo Then
Target.FormulaR1C1 = TargetText
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
TargetText = Target.Cells(1, 1).FormulaR1C1
End Sub
Die MsgBox (erscheint und frägt nach, ob eine Zelle tatsächlich überschrieben werden soll) soll Nicht erscheinen, wenn die zu überschreibende Zelle leer ist, den Wert 0 oder keine "Formel" beinhaltet. Die Formeln, die in den Zellen stehen , haben als Ausgabe eine 0.
Ich habe es schon so versucht, aber das funktioniert nicht:
If Target.Row >= 2 And Target.Row <= 798 And Target.Value <> "" Or 0 Then
Beispieldatei
Kann mir hier jemand helfen?
Danke
Gruß Florian