Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 1004 bei Range mit Cells

Laufzeitfehler 1004 bei Range mit Cells
08.02.2022 09:08:03
kwaki
Hallo,
wahrscheinlich ist es ein einfacher Fehler, aber ich komm einfach nicht drauf... Warum bekomme ich hier den Laufzeitfehler 1004?

Sheets("Tabelle1").Range(Cells(4, 1), Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
Grüße
Kwaki
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Weil der Blattschutz aktiv ist? ...oT
08.02.2022 09:08:58
{Boris}
VG, Boris
AW: Weil der Blattschutz aktiv ist? ...oT
08.02.2022 09:11:48
kwaki
Eigentlich nicht.. Wenn ich das ganze so machen funktioniert es nämlich auch komischerweise..

'Sheets("Tabelle1").Cells(4, 1).Interior.Color = RGB(240, 240, 240)
'Sheets("Tabelle1").Cells(4, 2).Interior.Color = RGB(240, 240, 240)
'Sheets("Tabelle1").Cells(4, 3).Interior.Color = RGB(240, 240, 240)
'Sheets("Tabelle1").Cells(4, 4).Interior.Color = RGB(240, 240, 240)

Anzeige
AW: Weil der Blattschutz aktiv ist? ...oT
08.02.2022 09:13:38
kwaki
Natürlich ohne die Auskommentierungszeichen ;)
Falsche Referenzierung...
08.02.2022 09:22:16
{Boris}
Hi,
Sheets("Tabelle1").Range(Sheets("Tabelle1").Cells(4, 1), Sheets("Tabelle1").Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
VG, Boris
AW: Falsche Referenzierung...
08.02.2022 09:27:55
kwaki
Ach klar, danke!
Anzeige
hier bietet sich auch WITH an ...
08.02.2022 09:30:49
Matthias
Hallo,

With Sheets("Tabelle1")
.Range(.Cells(4, 1), .Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
End With
Die Punkte vor Range und Cells sind hier wichtig.
Gruß Matthias
AW: Falsche Referenzierung...
08.02.2022 10:19:15
Herbert_Grom
Hallo Boris,
also bei mir funktioniert diese Version einwandfrei:

Sheets("Tabelle1").Range(Cells(4, 1), Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
auch ohne das 2. "Sheets("Tabelle1")". Wieso funzt das bei euch nicht?
Servus
Anzeige
Wahrscheinlich...
08.02.2022 10:23:12
{Boris}
Hi Herbert,
..wird der Code aus einem anderen Blatt als Tabelle1 gestartet.
VG, Boris
AW: Falsche Referenzierung...
08.02.2022 10:27:04
GerdL
Hallo Herbert,
es hat keiner geschrieben, dass es so nie funktioniert.
Aber so nur wenn, der Code im Blattmodul von "Tabelle1" steht oder dieses Blatt den Focus hat,
ansonsten läuft der Kurzcode in den Fehler 1004.
Gruß Gerd
Anzeige
AW: Laufzeitfehler 1004 bei Range mit Cells
08.02.2022 09:40:08
GerdL
Moin K.
Es ist der VBA-Syntax eigen, dass das einzelne "Cells" ohne direkte Ansprache entweder zum aktiven Blatt oder zum Blatt des Tabellenblattmoduls gehört.
Sheets("Tabelle1").Range(Sheets("Tabelle1").Cells(4, 1), Sheets("Tabelle1").Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
oder zusammengefasst:
With Sheets("Tabelle1")
.Range(.Cells(4, 1), .Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
End With
Der 1004rer kommt auch bei Blattschutzverstößen.
Gruß Gerd
Anzeige
AW: Hier besser Resize statt With
08.02.2022 17:11:05
Daniel
Hi
Die Ursache wurde ja schon geklärt.
Das Cells ohne Tabellenblattangabe davor bezieht sich immer auf aktive Tabellenblatt (Code im allgemeinen Modul). Der Fehler kommt, wenn die Range auf einem anderen Tabellenblatt liegen soll, als die Zellen, die definieren.
Der einfachste Weg, hier umständliche Codierung zu vermeiden ist die Resize-Funktion:

Sheets("Tabelle1").Cells(4, 1).Resize(1, 4).Interior.Color = ...
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 1004 bei Range mit Cells in Excel VBA


Schritt-für-Schritt-Anleitung

Wenn Du mit dem Laufzeitfehler 1004 in Excel VBA konfrontiert wirst, besonders bei der Verwendung von Range und Cells, kannst Du folgende Schritte befolgen:

  1. Überprüfe den Blattschutz: Stelle sicher, dass das Arbeitsblatt, auf das Du zugreifst, nicht geschützt ist. Ein aktiver Blattschutz kann Laufzeitfehler 1004 verursachen.

  2. Korrekte Referenzierung: Achte darauf, dass Du die richtige Syntax verwendest. Um den Fehler zu vermeiden, referenziere sowohl das Range als auch die Cells korrekt:

    Sheets("Tabelle1").Range(Sheets("Tabelle1").Cells(4, 1), Sheets("Tabelle1").Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
  3. Nutze WITH-Anweisung: Eine einfache Möglichkeit, den Code zu optimieren und Fehler zu vermeiden, ist die Verwendung der WITH-Anweisung:

    With Sheets("Tabelle1")
       .Range(.Cells(4, 1), .Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
    End With

Häufige Fehler und Lösungen

Hier sind einige häufige Ursachen für den laufzeitfehler 1004 und deren Lösungen:

  • Fehlerhafte Referenzierung: Wenn Du Cells ohne das Tabellenblatt angibst, bezieht sich Excel auf das aktive Blatt. Dies kann zu Fehlern führen, wenn Dein Code nicht auf dem richtigen Blatt ausgeführt wird. Immer die vollständige Referenz verwenden:

    Sheets("Tabelle1").Cells(4, 1).Interior.Color = RGB(240, 240, 240)
  • Blattschutz: Wenn das Arbeitsblatt geschützt ist, kannst Du keine Änderungen vornehmen. Deaktiviere den Blattschutz oder passe den Code entsprechend an.


Alternative Methoden

Es gibt alternative Methoden, um den Laufzeitfehler 1004 zu vermeiden:

  • Resize-Methode: Anstatt Range zu verwenden, kannst Du die Resize-Methode nutzen, um eine Zelle zu formatieren:
    Sheets("Tabelle1").Cells(4, 1).Resize(1, 4).Interior.Color = RGB(240, 240, 240)

Dies ist oft eine einfachere Methode, um mehrere Zellen gleichzeitig zu formatieren und reduziert die Wahrscheinlichkeit von Fehlern.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, den Fehler zu vermeiden:

  1. Standardformatierung:

    With Sheets("Tabelle1")
       .Range(.Cells(4, 1), .Cells(4, 4)).Interior.Color = RGB(240, 240, 240)
    End With
  2. Verwendung von Resize:

    Sheets("Tabelle1").Cells(4, 1).Resize(1, 4).Interior.Color = RGB(240, 240, 240)

Beide Methoden sind effektiv und helfen, den excel vba fehler 1004 zu umgehen.


Tipps für Profis

  • Debugging: Nutze die Debugging-Werkzeuge in Excel, um den Code Schritt für Schritt durchzugehen. Achte besonders auf die Zeilen, die den Fehler auslösen.

  • Verwende Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um Laufzeitfehler abzufangen und entsprechende Maßnahmen zu ergreifen:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Code-Dokumentation: Dokumentiere Deinen Code gut, um bei zukünftigen Änderungen schneller zu erkennen, wo die Probleme liegen könnten.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 1004?
Der Laufzeitfehler 1004 in Excel tritt auf, wenn ein Befehl nicht erfolgreich ausgeführt werden kann, oft aufgrund von falscher Referenzierung oder Blattschutz.

2. Warum funktioniert mein Code nicht, obwohl ich die richtige Syntax verwende?
Stelle sicher, dass das Arbeitsblatt, auf das Du zugreifen möchtest, aktiv ist oder dass Du die vollständige Referenz verwendest. Fehler können auch durch den Blattschutz entstehen.

3. Gibt es eine einfache Methode, um mehrere Zellen zu formatieren?
Ja, die Verwendung der Resize-Methode ist eine einfache und effektive Möglichkeit, mehrere Zellen gleichzeitig zu formatieren, ohne den excel laufzeitfehler 1004 zu riskieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige