AW: Wert nach Änderung einer Zelle schreiben
01.10.2008 20:28:44
Erich
Hi Markus,
probier mal
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
If Target.Address = Range("Lstg1").Address Then
If Target = "EnEV NiWo" Or Target = "EnEV Wohn" Then
Application.EnableEvents = False
Range("A8") = "Leistungen für EneV 2007 " & Chr(10) & _
"(Schriftenreihe AHO Nr.23)"
Application.EnableEvents = True
End If
End If
ExitCode:
Exit Sub
ErrorHandler:
MsgBox "Hier passiert Scheiße!"
Resume ExitCode
End Sub
' ODER:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("Lstg1").Address Then
If Target = "EnEV NiWo" Or Target = "EnEV Wohn" Then
Application.EnableEvents = False
Range("A8") = "Leistungen für EneV 2007 " & Chr(10) & _
"(Schriftenreihe AHO Nr.23)"
Application.EnableEvents = True
End If
End If
End Sub
Noch ein paar Bemerkungen:
Wenn du Range("A8") änderst, erzeugst du damit ein Worksheet_Change-Ereignis.
Und dann soll deine Prozedur laufen - die ja gerade schon läuft.
Deshalb "Application.EnableEvents = False".
Range("Lstg1") = "EnEV NiWo" geht kürzer mit Target = "EnEV NiWo".
Range("A8").Select ist überflüssig, eventuell auch schädlich.
Warum .FormulaR1C1 = "..."? Du willst doch gar keine Formel schreiben, nur den Value ändern:
Range("A8").Value = "..." oder kürzer
Range("A8") = "..."
Braucht man hier wirklich ein Error Handling?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort