Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

VBA Laufzeitfehler 1004

Betrifft: VBA Laufzeitfehler 1004 von: Frischling123
Geschrieben am: 30.09.2020 20:44:12

Hallo liebe VBA-Profis,


ich bekomme immer wieder die Fehlermeldung 1004 und das bei der Zeile "Range("C172:C201").Select" etwas nicht stimmt.

Ich bin leider ein absoluter Frischling und weiß nicht genau weiter bei folgendem Code:


Option Explicit



Private Sub CommandButton1_Click()
Experiment
End Sub
Sub Experiment()

 Experiment Makro
 Tastenkombination: Strg+p

    Sheets("Input").Select
    Range("C172:C201").Select
    Selection.Copy
    Sheets("OutputExperimente").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True End Sub Betrifft: AW: VBA Laufzeitfehler 1004
von: Daniel
Geschrieben am: 30.09.2020 21:19:08

HI

wenn sich das Marko "Experiment" ebenfalls im Modul des Tabellenblatts befindet und nicht in einem neu angelegtem Modul1, dann gilt die Regel, dass sich die Zellbezüge (Range, Cells, Columns, Rows) ohne Tabellenblattangabe davor nicht auf das aktive Tabellenblatt beziehen, sondern immer auf das Tabellenblatt des Moduls!

dh dein Range("C172:C201") bezieht sich nicht auf das Blatt "Input", sondern auf das Blatt, in welchem der Button liegt, und du versuchst auf ein einem nicht aktiven Blatt etwas zu selektieren.


mögliche Abhilfen wären:
a) verschiebe das Makro in ein allgemeines Modul (Modul1), dann beziehen sich Range und Cells ohne Blattangabe davor auf das aktive Blatt

b) verwende bewusst ActiveSheet
ActiveSheet.Range("C172:C201").Select
c) lass das Select des Recorders weg und:
- hänge den Befehl (Copy, Paste) direkt an das Cel oder Range
- referenziere vollständig, dh mit Angabe des Tabellenblatts:
Sub Experiment()

 Experiment Makro
 Tastenkombination: Strg+p

    Sheets("Input").Range("C172:C201").Copy
    Sheets("OutputExperimente").Range("A1").PasteSpecial Paste:=xlPasteAll
End Sub
Gruß Daniel

Betrifft: AW: VBA Laufzeitfehler 1004
von: ralf_b
Geschrieben am: 30.09.2020 21:19:48


versuch mal
Sheets("Input").Select
Sheets("Input").Range("C172:C201").Select