346 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo, ich habe vier Zellen (A1;B1;C1 und D1). Eine von diesen vier
Zellen soll mit einem Datum gefüllt und die anderen drei Zellen gesperrt
werden. Zum Beispiel: wenn in Zelle A1 ein Datum eingetragen wurde,
sollen die benachbarten Zellen B1,C1 und D1 gesperrt werden, weil
diese Zellen keine Werte enthalten dürfen. Die gerade mit einem Datum
versehene Zelle, soll aber für den Nutzer beschreibbar bleiben um
fehlerhafte Angaben berichtigen zu können.

Hintergrund ist eine Datei in der regelmäßige Kontrollen (8 im Jahr)
unterschiedlicher Kategorie (4 Stück) mit Datum erfasst werden müssen.
Da ich aber vorab nicht weiß welche der vier Kategorien pro Kontrolle
getätigt wurde, muss es für den Eintragenden vier Möglichkeiten zur
Auswahl geben und von diesen vier Möglichkeiten darf er nur eine mit
einem Datum versehen. Um nun die anderen drei Zellen vor dem
versehentlichen Ausfüllen mit einem Datum zu schützen, muss es doch
eine Lösung geben, wie man diese Angelegenheit mit VBA , oder auf
anderem Wege regeln kann. Ich habe mich für den Augenblick mit einer
farbigen Formatierung der nicht ausgefüllten Zellen beholfen um so
meinen Kollegen farblich den Hinweis zu geben, das alles gut ist. Denn
wenn mehr als eine von vier Zellen je Auswertungsbereich mit einem
Datum gefüllt ist, steigt der Istwert über 100% in der Auswertung und das
ist natürlich nicht möglich. Mir will keine praktikable Lösung einfallen. Ich
hoffe auf einen Lösungsansatz aus diesem Forum. Gruß vom ADRIEN

1 Antwort

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Adrien,

füge in das VBA-Projekt der Tabelle den folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:D1")) Is Nothing Then

With Range("A1:D1")
If Application.WorksheetFunction.CountBlank(.Cells) < 3 Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End If
End With

End If

End Sub

Gruß

M.O.
...