Target.Address Fehlermeldung Laufzeitfehler "424": Objekt erforderlich?
Hallo,
ich verschiedene Befehle mit VBA realisieren, um eine Auswahlliste anzupassen. Zum einen sollen Zellen ausgeblendet werden, wenn eine bestimmte Zelle leer ist und daher ein ganzer Teil der Liste entfallen kann. Der Befehl sieht folgendermaßen aus:
Sub HdlZellenVerbergen()
If Target.Address = "$C$9" Then
If C9 = "" Then
Rows("164:195").Hidden = True
Else
Rows("164:195").Hidden = False
End If
End If
End Sub
Da ich mich nun Hals über Kopf in VBA geschmissen habe und schon einige Male Internetrecherche betrieben habe, weiß ich nicht wo der Fehler liegt, da mir hier die Erfahrung fehlt. Der Fehler lautet wie in der Überschrift angegeben. Was muss ich machen, damit das ganze nun funktioniert.
Ein ähnliches Problem erwarte ich dann bei folgendem Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$8" Then
If [C8] = "x" Then [D22] = "y"
End If
End Sub
Auch hier wäre eine Hilfe super.
Vielen Dank im Voraus.
2 Antworten
Im ersten Code kann das nicht klappen, da "target" nur in einem Ereignismakro zur Verfügung steht, nicht in einer normalen Sub.
Ändere die erste Zeile in:
Private Sub Worksheet_Change(ByVal Target As Range)
'(und das C9 in [C9] )
Dann sollte es klappen.
Der zweite Code - ein Ereignismakro - funktioniert bei mir.
Wie lautet da die Fehlermeldung und in welcher Zeile?
P.S.: Wenn Du beide Codes gleichzeitig ausführen willst (Excel erlaubt nur EIN Change-Ereignis-Makro), dann einfach den ersten Code - ohne die Sub- und End Sub -Zeile unter den zweiten kopieren.
das dürfte daran liegen:= "$C$9"
Probiers mal mit Activesheet.range("$C$9")
oder mit der Kurzform: Activesheet.[$C$9]
on es Activesheet. überhaupt braucht, weiß ich nicht auswendig.
Die Kurzform wertet allerdings keinerlei Ausdrücke aus, während Du in der Langform die Adresse zusammensetzen und so der Situation anpassen kannst, zB:
("C"&activecell.row) oder Bereiche:
("C9:"&activecell.address)
'was Du dann mit Set VarRgA = ... (nicht dim!) einer Variablen zuweisen kannst.