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

Forumthread: Laufzeitfehler 1004

Laufzeitfehler 1004
Udo
Hallo,
nachdem ich eben schon eine Frage bezüglich eines Drop-Down Feldes gestellt habe ist mir nun der nächste Fehler in meiner Arbeitsmappe aufgefallen.
Über ein Makro konnte ich bisher eine Spalte mit Namen immer alphabetisch sortieren.
Nachdem ich nun ein weiteres Tabellenblatt in die Arbeitsmappe eingebaut habe ( wenn der Fehler denn daran liegt) bekomme ich beim ausführen des Makros folgende Fehlermeldung:
Laufzeitfehler 1004
Die Sort-Methode des Range-Objektes konnte nicht ausgeführt werden.
Das Makro sieht wie folgt aus:

Sub sortieren()
Range("A2:N100").Sort Key1:=Range("A2"), Order1:=xlAscending
End Sub

Ich hoffe es hat einer von Euch kann mir bei der Lösung des Problems helfen.
Gruss Udo
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler 1004
22.03.2011 11:32:31
Uwe
Hallo,
ich bin mir nicht sicher, aber versuche mal das Ganze voll zu referenzieren also in der Art:
Sheets("Tabelle3").Range("A2:N100").Sort Key1:=Sheets("Tabelle3").Range("A2"), Order1:=xlAscending
Gruß
Uwe
(:o)
AW: Laufzeitfehler 1004
22.03.2011 11:41:52
Udo
Hallo,
hat leider nicht geklappt, der Fehler ist noch immer der selbe.
Udo
Anzeige
AW: Laufzeitfehler 1004
22.03.2011 12:42:15
Peter
Hallo Udo,
Dein Makro wird laufen, wenn das zu sortierende Blatt das aktuelle BLatt ist.
Versuch es so: Die Punkte vor Range NICHT VERGESSEN!
Sub sortieren()
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
.Range("A2:N100").Sort Key1:=.Range("A2"), Order1:=xlAscending
End With
End Sub
Gruß Peter
Anzeige
AW: Laufzeitfehler 1004
22.03.2011 14:29:26
Udo
Ich habe jetzt festgestellt, das der Fehler nur dann auftritt wenn ich das Blatt "schütze". Sobald ich den Blattschutz heraus nehme funktioniert das Makro einwandfrei.
Der Blattschutz ist allerdings sehr wichtig, da auch andere Personen mit der Tabelle arbeiten sollen, aber nicht die Möglichkeit haben dürfen etwas zu verändern.
Meine Frage wäre jetzt ob es Möglich ist das Makro auch funktionstüchtig zu machen wenn ich das Blatt schütze?
Gruss
Udo
Anzeige
habe die Lösung gefunden...
22.03.2011 14:48:32
Udo
Konnte das Problem beheben mit:
ActiveSheet.Unprotect Password:="Dein Passwort"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="Dein Passwort"
Vielen Dank für Eure Hilfe...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 1004 in Excel VBA beheben


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler 1004 in Excel VBA zu beheben, folge diesen Schritten:

  1. Referenziere das Tabellenblatt: Stelle sicher, dass Du das richtige Tabellenblatt angibst. Verwende With-Anweisung, um dein Makro klar zu strukturieren.

    Sub sortieren()
       With ThisWorkbook.Worksheets("Tabelle1") ' den Namen anpassen
           .Range("A2:N100").Sort Key1:=.Range("A2"), Order1:=xlAscending
       End With
    End Sub
  2. Überprüfe den Blattschutz: Wenn das Blatt geschützt ist, kann das Makro nicht ausgeführt werden. Entferne den Blattschutz vor der Sortierung:

    ActiveSheet.Unprotect Password:="Dein Passwort"
    ' Sortiere hier
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="Dein Passwort"
  3. Führe das Makro aus: Teste das Makro, nachdem Du den Blattschutz entfernt hast, um sicherzustellen, dass es funktioniert.


Häufige Fehler und Lösungen

  • Fehler 1004: "Die Sort-Methode des Range-Objektes konnte nicht ausgeführt werden."

    • Lösung: Achte darauf, dass das zu sortierende Blatt aktiv ist oder dass Du das Blatt korrekt referenzierst.
  • Blattschutz aktiv: Wenn der Blattschutz aktiv ist, wird der Fehler auch auftreten.

    • Lösung: Verwende ActiveSheet.Unprotect und ActiveSheet.Protect, um den Blattschutz temporär zu entfernen.

Alternative Methoden

Falls die oben genannten Methoden nicht funktionieren, kannst Du folgende Alternativen ausprobieren:

  1. Daten in ein neues Blatt kopieren: Kopiere die Daten in ein ungeschütztes Blatt, führe dort die Sortierung durch und kopiere die Daten zurück.

  2. Verwendung von Pivot-Tabellen: Erstelle eine Pivot-Tabelle, um die Daten zu sortieren und zu analysieren, ohne Makros.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie Du den Laufzeitfehler 1004 in einem Makro umgehen kannst:

Sub sortieren()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Tabelle1") ' Tabellenblatt anpassen

    ' Blattschutz aufheben
    ws.Unprotect Password:="Dein Passwort"

    ' Sortierung durchführen
    ws.Range("A2:N100").Sort Key1:=ws.Range("A2"), Order1:=xlAscending

    ' Blattschutz wieder aktivieren
    ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="Dein Passwort"
End Sub

Tipps für Profis

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung in Dein Makro, um herauszufinden, an welcher Stelle der Fehler auftritt.

  • Verwende Try-Catch: In anderen Programmiersprachen kannst Du Fehler einfacher abfangen. In VBA kannst Du On Error Resume Next verwenden, um Fehler zu ignorieren und dann gezielt zu handeln.

  • Dokumentiere Deine Makros: Halte fest, welche Änderungen Du an Deinen Makros vornimmst, um bei zukünftigen Problemen schneller reagieren zu können.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 1004?
Der Laufzeitfehler 1004 tritt auf, wenn eine Methode oder Eigenschaft in Excel VBA nicht ordnungsgemäß ausgeführt werden kann, oft aufgrund von Referenzierungsfehlern oder Blattschutz.

2. Wie kann ich Fehler 1004 in Excel VBA beheben?
Achte darauf, dass Du das richtige Tabellenblatt verwendest und dass der Blattschutz nicht aktiv ist. Verwende die Unprotect- und Protect-Methoden, um den Blattschutz temporär zu entfernen.

3. Gibt es Alternativen zu VBA für die Datenmanipulation?
Ja, Du kannst auch Pivot-Tabellen oder Power Query nutzen, um Daten zu sortieren und zu analysieren, ohne VBA-Makros zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige