Als Antwort auf diesen Beitrag
Hallo,
dein Worksheet_Change sieht dann so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sAddr As String
Dim i As Long
If pObjSelD Is Nothing Then Call Init_pObjSel
sAddr = Target.Address(0, 0)
If pObjSelD.exists(sAddr) Then Range(pObjSelD(sAddr)).Select
'Button nach Denkmalschutz wird nur angezeigt wenn bei Eingabe Denkmalschutz auf Ja steht
If Target.Address = "$D$12" Then
Worksheets("Wert1914").ButtonNachDenkmalschutz.Visible = Target.Value = "Ja"
For i = 6 To 17
With Worksheets("Denkmalschutz").OptionButtons("Optionsfeld " & i)
If Target.Value = "Ja" Then
.Visible = True
Else
.Visible = False
.Value = xlOff
End If
End With
Next i
End If
'Wenn auf der Eingabeseite "Neubau" steht dann werden die Prämiensätze auf der Seite "Vorbelegung" gelöscht
If Sheets("Eingabe").Range("G11") = "Neubau" Then
With Sheets("Vorbelegung")
.Unprotect
.Range("J5:K5").Value = ""
.Range("C12:C13").Value = ""
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End If
End Sub
Und in einem Modul:
Option Explicit
Public pObjSelD As Object
Sub Init_pObjSel()
Dim tabArray, i As Integer
Set pObjSelD = CreateObject("scripting.dictionary")
tabArray = Split("D7 D8 D9 D10 D11 D12 D13 D19 D20 D21 D7")
For i = 0 To UBound(tabArray) - 1
pObjSelD(tabArray(i)) = tabArray(i + 1)
Next i
End Sub
Gruß aus'm Pott
Udo