Hi,
ich möchte folgende erreichen:
Ich habe von Zelle B6 bis I6 eine Zeile , wo ich jeweils immer einen Namen eingetragen werden kann. In den jeweiligen Spalten, also B8 bis B15, C8 bis C15 usw. bis I8 bis I15 können Informationen jeweils zu dem Namen eingetragen werden.
Die Zellen mit den Informationen (B8-B15 etc.) sollen solange deaktiviert bleiben, bis zuvor oben in den Zellen B6 bis I6 ein Name eingetragen wurde.
Hierzu habe ich folgenden Code, der das auch soweit macht wie ich will.
Dim i, ii As Integer
Dim strNamen(7, 2) As String
strNamen(0, 0) = "B6"
strNamen(0, 1) = "B8:B15"
strNamen(1, 0) = "C6"
strNamen(1, 1) = "C8:C15"
strNamen(2, 0) = "D6"
strNamen(2, 1) = "D8:D15"
strNamen(3, 0) = "E6"
strNamen(3, 1) = "E8:E15"
strNamen(4, 0) = "F6"
strNamen(4, 1) = "F8:F15"
strNamen(5, 0) = "G6"
strNamen(5, 1) = "G8:G15"
strNamen(6, 0) = "H6"
strNamen(6, 1) = "H8:H15"
strNamen(7, 0) = "I6"
strNamen(7, 1) = "I8:I15"
'MsgBox strNamen(0, 0) & "-" & strNamen(0, 1)
For i = 0 To 7
For ii = 0 To 1
'MsgBox strNamen(i, ii)
If IsEmpty(Range(strNamen(i, 0))) = True Then
Range(strNamen(i, 1)).Locked = True
Range(strNamen(i, 1)).Interior.ColorIndex = 2
Application.DisplayAlerts = False
Else
Range(strNamen(i, 1)).Locked = False
Range(strNamen(i, 1)).Interior.ColorIndex = 6
End If
Next
Next
Jetzt macht er immer erst das ganze Array durch.
Am liebsten wäre mir eigentlich, dass er im Array sucht, welches Namesfeld zum ändern ausgewählt wurde, dann soll er dieses Feld im Array suchen und mir die dazugehörigen Zellen ausgeben, die für die Suchzelle hinterlegt sind. So bspw. wenn B6 die Target.Address ist, dann soll er B8:B15 ausgeben
Also in der Art:
If Target.Address = IsInArray
If IsEmpty(Range(IsInArray(Adresse)) = True Then
Range(IsInArray(Adresse).Locked = True
Range(IsInArray(Adresse)).Interior.ColorIndex = 2
Else
Range(IsInArray(Adresse).Locked = False
Range(IsInArray(Adresse).Interior.ColorIndex = 6
End If
End If
Vllt hat jemand eine Idee :)
Danke
|