AW: Datenüberprüfung bei leeren Zellen?
30.09.2021 22:56:45
Sebastian
Hallo ich war spontan außer Lande, habe aber jetzt etwas weiter an eine Lösung gesucht.
Wenn in den Zeilen nichts drin steht dann sind per VBA die Optionsfelder ausgblendet.
Werden die Zeilen gefüllt dann scheinen erst die Optionsfelder zum anklicken.
Sobald eine Zelle unbefüllt bleibt erscheinen also nicht die Optionsfelder.
Hier ist der VBA Code und besteht aus 2 Teilen:
Beim starten der Datei werden die Zellen erstmal gelöscht damit sie nach dem Öffnen auch neu befüllt werden.
Dies kann aber auch ausgeschaltet werden.
In meine Arbeitsmappe kommt:
Option Explicit
Private Sub Workbook_Open()
'die Tabelle mit der AU wird aktiviert
Tabelle1.Activate
'die Zellen leeren
Cells(5, 4) = ""
Cells(6, 4) = ""
Cells(7, 4) = ""
'Optionsfelder unsichtbar und Wert auf Null
ActiveSheet.Shapes("Optionsfeld 1").Visible = False
ActiveSheet.Shapes("Optionsfeld 2").DrawingObject.Value = 0
ActiveSheet.Shapes("Optionsfeld 2").Visible = False
ActiveSheet.Shapes("Optionsfeld 2").DrawingObject.Value = 0
End Sub
und in das entsprechende Tabellenblatt kommt folgender Code:
Dieser beschreibt mit Cells die Zellen, welche befüllt sein sollen, nämlich soll der Inhalt der Zelle größer als null sein (Value "") um Wahr zu sein und dann folgende die Optionsfelder welche mit True daraufhin eingeblendet werden sollen. WEnn der Wert in den einer von den Zeilen null ist, dann werden durch False keine Optionsfelder eingeblendet.
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(5, 4).Value "" And Cells(6, 4).Value "" And Cells(7, 4).Value "" And Cells(13, 4).Value "" And Cells(14, 4).Value "" Then
ActiveSheet.Shapes("Optionsfeld 1").Visible = True
ActiveSheet.Shapes("Optionsfeld 2").Visible = True
ActiveSheet.Shapes("Optionsfeld 3").Visible = True
ActiveSheet.Shapes("Optionsfeld 4").Visible = True
ElseIf Cells(5, 4).Value = "" Or Cells(6, 4).Value = "" Or Cells(7, 4).Value = "" Or Cells(13, 4).Value = "" Or Cells(14, 4).Value = "" Then
ActiveSheet.Shapes("Optionsfeld 1").Visible = False
ActiveSheet.Shapes("Optionsfeld 2").Visible = False
ActiveSheet.Shapes("Optionsfeld 3").Visible = False
ActiveSheet.Shapes("Optionsfeld 4").Visible = False
End If
End Sub
Die Optionsfelder mit ihren Nummerierungen müssen mit den Optionsfeldernamen auf dem Tabellenblatt übereinstimmen.
Dies Funktion funktionert auch mit Kontrollkästchen. ;-)
ActiveSheet.Shapes("Kontrollkästchen 1").Visible = True
ActiveSheet.Shapes("Kontrollkästchen 1").Visible = False