Laufzeitfehler 1004
21.03.2006 17:00:33
flogge
ich bin ein Neuling in Sachen VBA usw. und hab mich jetzt an Excel versucht.
Diese Excel-Datei hat 3 Arbeitsblätter.
Dabei habe ich in Tabelle1 einen CommandButton eingeführt, der ein Makro ablaufen lässt. Mit diesem Makro werden bestimmte Werte + Gültigkeit aus bestimmten Bereichen von Tabelle1 in Tabelle2 kopiert. Die einzelnen Arbeitsblätter sind geschützt.
Sub Kopieren ()
Tabelle2.Unprotect Password:="test"
Dim kwpkopierbereich As Object
Dim navikopierbereich As Object
Dim zusatzkopierbereich As Object
Dim kwpeinfuegebereich As Object
Dim navieinfuegebereich As Object
Dim zusatzeinfuegebereich As Object
Set kwpkopierbereich = Tabelle1.Range("H4")
Set kwpeinfuegebereich = Tabelle2.Range("H4")
Set navikopierbereich = Tabelle1.Range("E7:J27")
Set navieinfuegebereich = Tabelle2.Range("E7:J27")
Set zusatzkopierbereich = Tabelle1.Range("D28:J36")
Set zusatzeinfuegebereich = Tabelle2.Range("D28:J36")
kwpkopierbereich.Copy
kwpeinfuegebereich.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
navikopierbereich.Copy
navieinfuegebereich.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
zusatzkopierbereich.Copy
zusatzeinfuegebereich.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Tabelle2.Select
Range("H4").Select
Tabelle2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="test"
End Sub
Das Makro Kopieren funktioniert für sich allein ganz gut. Nun hab ich für die Tabelle2 ein weiteres Makro geschrieben. Dieses Makro vergleicht die Werte bestimmter Bereich in Tabelle1 und Tabelle2 und ändert die Schriftfarbe von Werten von Tabelle2, die von Tabelle1 abweichen. Weil ich, wie bereits geschrieben, Neuling bin, hab ich quasi jede Zelle einzeln angesprochen und ein langes langes langes Makro rausbekommen. :o) Hier ein Auszug.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Wert1 = Tabelle2.Range("E13").Value
Wert2 = Tabelle1.Range("E13").Value
If wert1 = wert2 Then
Tabelle2.Range("E13").Font.color = RGB(0, 0, 0)
Else
Tabelle2.Range("E13").Font.color = RGB(255, 0, 0)
End If
End Sub
Auch dieses funktioniert für sich allein ganz gut, nur nicht zusammen. Wenn ich auf Tabelle1 den Button klicke und somit das Makro Kopieren aktiviere, dann bekomme ich die Fehlermeldung: Laufzeitfehler 1004 Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden + die gelbe Hinterlegung an dieser Stelle "navieinfuegebereich.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False".
Beim nachvollziehen der Einzelschritte wird gezeigt, dass genau an der gelb markierten Stelle das zweit Makro aufgerufen und ausgeführt wird. Warum? Welchen Fehler habe ich gemacht? Wer kann mir hier weiterhelfen?