laufzeitfehler 40036
09.09.2003 13:44:15
Claudia
ich brauche bitte, bitte Hilfe von Euch! Ich bin glaube ich schon ziemlich weit ohne meine VBA Kenntnisse gekommen, jedoch läuft das Makro noch immer nicht, so wie ich es mir vorstelle.
Im Code der Tabellenmappe steht folgendes:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 1 Then
Call Makro_1
End If
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 2 Then
End If
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 3 Then
Call Makro_3
End If
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 4 Then
Call Makro_4
End If
End Sub
Es soll die Zelle D23 in der Tabelle "Parameter" beobachtet werden und wenn sich der Wert in dieser Zelle ändert, dann soll ein bestimmtes Makro ausgeführt werden.
Das funktioniert aber nicht - liegt es evtl. daran, was in der Excel-Hilfe steht?
Wenn ich die Makros selber starte, bricht es mit der Fehlermeldung "Laufzeitfehler 13" Typen unverträglich ab und die oben gekennzeichnete Zeile ist gelb markiert.
Und Chage ist wirklich der richtige Befehl, um automatisch eine Werteveränderung in der Zelle D22 zu erkennen? In der Hilfe von Excel steht:
Syntax
Private Sub Worksheet_Change(ByVal Ziel As Range)
Ziel Der geänderte Bereich. Er kann mehr als eine Zelle umfassen.
Anmerkungen
Dieses Ereignis tritt nicht ein, wenn sich Zellen während einer Neuberechnung verändern. Verwenden Sie das Calculate-Ereignis, um eine Neuberechnung des Tabellenblattes aufzufangen.
Ist meine Veränderung der Zelle nicht eine Neuberechnung?
Ein zweites Problem ist nun folgendes. Die Makros, die ich starten möchte, starten nicht. :-)
Es kommt die Fehlermeldung "Laufzeitfehler 40036" und die Zeile " Sheets("Parameter").Select" ist markiert. Hier der Code:
Sub Makro_3()
Application.ScreenUpdating = False
Sheets("Parameter").Visible = True
Sheets("Parameter").Select
Range("B27:D74").Select
Selection.Copy
Sheets("Übersicht").Select
Range("R7:T54").Select
ActiveSheet.Paste
' vorherigen Status (Tag) setzen
Sheets("Parameter").Select
Range("C20").Select
Selection.Copy
Range("C22").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("Parameter").Visible = False
Application.ScreenUpdating = True
End Sub
Hilfe, Hilfe.... es kann doch nicht sein, dass ich schon so weit gekommen bin und nun aufgeben muss...
Wer kann mir helfen?
Liebsten Gruß,
Claudi