Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel Laufzeitfehler





Frage

Habe eine Arbeitsmappe mit mehreren Tabellenblättern. Ich lösche bestimmte Inhalte über ein Makro das ich mit einer Schaltfläche belegt habe. ( Makro aufgezeichnet und dann der Schaltfläche zugewiesen ). Nun bin ich auf die Idee gekommen eine weitere Schaltfläche anzulegen und bestimmte Werte aus den jeweils angewählten Tabellenblatt in das Tabellenblatt Gesamt zu übertragen um die wichtigsten Werte dort zu sichern. Hab wieder ein Makro aufgezeichnet und es funktioniert. Nur wenn ich dem 2ten Button das Makro hineinkopiere ( über Code anzeigen )und auf die Schaltfläche drücke kommt - Laufzeitfehler 1004 der Select Modus des Range Objekts kann nicht ausgeführt werden - Rufe ich aber nur das Makro über Extra - Makro -ausführen auf funktioniert es !! Was mache ich nur Falsch ??? hier der Button 2 Private Sub CommandButton2_Click() ' ' Makro4 Makro ' Makro am 15.11.2004 von aufgezeichnet ' ' Sheets("Gesamt").Select Selection.Insert Shift:=xlDown Range("G23").Select Sheets("Rechnung 20").Select Range("B9").Select Selection.Copy Sheets("Gesamt").Select Range("D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Sheets("Rechnung 20").Select Range("B12").Select Application.CutCopyMode = False Selection.Copy Sheets("Gesamt").Select Range("E4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Sheets("Rechnung 20").Select Range("E19").Select Application.CutCopyMode = False Selection.Copy Sheets("Gesamt").Select Range("C4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Sheets("Rechnung 20").Select Range("F31").Select Application.CutCopyMode = False Selection.Copy Sheets("Gesamt").Select Range("J4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Sheets("Rechnung 20").Select Range("F17").Select Application.CutCopyMode = False Range("F17").Select End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub Danke für die Hilfe im Voraus !!

Antwort 1 von schnallgonz

Hallo Henner4711,

ich glaube, das liegt daran, dass Excel (97?) beim Springen zwischen den Tabellenblättern mit der Zuordnung der Zellen durcheinander kommt.

Bei einem meiner Makros, das Daten aus einem Tabellenblatt in ein anderes Tabellenblatt filtert, kam dieselbe Meldung.

Abhilfe schafft man, wenn in der Range-Anweisung das Arbeitsblatt mit angegeben wird oder man gibt den anzuspringenden Zellen einen Namen als eindeutige Zuordnung.
Diese Namen werden dann in der Range-Anweisung wiederholt.
Bsp.:
Der Zelle "B9" in dem Blatt "Rechnung20" gibt Du den Namen "Yo" oder "Re20Bneun"
(über EINFÜGEN / NAMEN / FESTLEGEN) und schreibst dann in Dein Listing nicht:

Range("B9").Select


sondern:
Range("Yo").Select

oder:
Range("Re20Bneun").Select


je nachdem, welche Namen Du verwendest.

Viel Glück
Gruß
schnallgonz