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

Forumthread: Anwendungs und Objektdefinierter Fehler 1004

Anwendungs und Objektdefinierter Fehler 1004
25.06.2015 22:51:01
hi
Hallo zusammen!
Habe folgendes Problem:
Ich möchte in einem Arbeitsblatt eine Zeile löschen welche die Inhalte enthält die man über eine Userform eingibt und sucht.
Anfänglich lief mein Code ganz gut, aber seit kurzer Zeit liefert mir Excel immer den Fehler "Laufzeitfehler 1004" und der Debugger hinterlegt diese Zeile:
Sheets("User_aktuell").Rows(zeile) = ""
Kann mir vielleicht von euch jemand sagen woran das liegt? Bin schon am Verzweifeln :(
Liebe Grüße und Danke schon im Vorhinein
Hier mein Code:
Private Sub cmd_speichern_Click()
If txt_ID = "" And txt_bn = "" And txt_pw = "" And txt_gruppe = "" Then
Sheets("User_aktuell").Rows(zeile) = ""
'wenn Textfelder leer, dann Zeile leer ; wenn Zeile  _
gelöscht werden soll dann nach Rows(zeile).Delete
Else
Worksheets("User_aktuell").Select
Cells(zeile, 1) = txt_ID.Value
Cells(zeile, 2) = txt_bn
Cells(zeile, 3) = txt_pw
Cells(zeile, 4) = txt_gruppe
End If
If txt_ID = "" And txt_bn = "" And txt_pw = "" And txt_gruppe = "" Then
Sheets("User_Original").Rows(zeile).Interior.ColorIndex = 15 'Rows(zeile) ' wenn Textfelder  _
leer, dann in User_Original Zeile einfärben
'Worksheets(Array("User_Original", "User_aktuell")).Select
Else
Worksheets("User_Original").Select
Cells(zeile, 1) = txt_ID.Value
Cells(zeile, 2) = txt_bn
Cells(zeile, 3) = txt_pw
Cells(zeile, 4) = txt_gruppe
End If
Unload Me
adminmenue.Show
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anwendungs und Objektdefinierter Fehler 1004
25.06.2015 23:05:25
Matthias
Hallo
Welchen Wert hat denn Zeile? Evtl. 0 ?
MsgBox Zeile
Sheets("User_aktuell").Rows(zeile) = ""
Gruß Matthias

Was sagt der Debugger?
25.06.2015 23:06:01
{Boris}
Hi,
...welchen Wert hat die Variable zeile im Moment des Fehlers?
VG, Boris

AW: Anwendungs und Objektdefinierter Fehler 1004
26.06.2015 20:04:51
hi
Hallo!
Habe den Fehler schon gefunden - der Wert der Zeile war 0 :D
Danke für eure Hilfe sonst wäre ich da nie drauf gekommen :)
Jetzt habe ich allerdings ein neues Problem.
In meinem Dokument gibt es mehrere Benutzer die nach dem Anmelden jeweils andere Userformen sehen, da sie verschiedene Rechte haben. Wie kann ich deren Passwörter ändern wenn ich eine Userform erstellt habe, in der man das alte Passwort 2x richtig schreiben muss und dann das neue auch 2x richtig schreiben und am Anfang soll der richtige Datensatz über den Benutzernamen gesucht werden?
Leider habe ich nur wenig Ahnung von VBA und deshalb weiß ich nicht wie ich das am besten angehe.
Lg
Anzeige
;

Forumthreads zu verwandten Themen

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

Fehler 1004: Anwendungs- oder objektdefinierter Fehler in Excel beheben


Schritt-für-Schritt-Anleitung

  1. Überprüfe den Wert der Variablen zeile: Der häufigste Grund für den Fehler "laufzeitfehler 1004 anwendungs oder objektdefinierter fehler" ist, dass die Variable zeile einen ungültigen Wert hat. Füge vor der fehlerhaften Zeile diesen Code hinzu:

    MsgBox zeile

    Dies zeigt den aktuellen Wert von zeile an. Stelle sicher, dass er größer als 0 ist.

  2. Korrigiere den Code: Wenn zeile = 0 ist, bedeutet das, dass du versuchst, eine Zeile zu löschen, die nicht existiert. Stattdessen kannst du die Zeile so löschen:

    If zeile > 0 Then
       Sheets("User_aktuell").Rows(zeile).Delete
    End If
  3. Testen: Führe das Skript erneut aus und prüfe, ob der Fehler weiterhin auftritt.


Häufige Fehler und Lösungen

  • Fehler: zeile ist 0 oder negativ: Stelle sicher, dass der Wert korrekt gesetzt wird, bevor du versuchst, auf die Zeile zuzugreifen.
  • Fehler beim Zugriff auf nicht existierende Arbeitsblätter: Überprüfe den Namen des Arbeitsblattes. Ein Tippfehler kann ebenfalls zu einem "excel laufzeitfehler 1004 anwendungs- oder objektdefinierter fehler" führen.

Alternative Methoden

  • Verwendung von Find für die Zeilensuche: Anstatt die Zeile direkt zu setzen, kannst du die Find-Methode verwenden, um die Zeile basierend auf einem Suchkriterium zu finden. So kannst du sicherstellen, dass die Zeile existiert:
    Dim rng As Range
    Set rng = Sheets("User_aktuell").Columns(1).Find(txt_ID.Value)
    If Not rng Is Nothing Then
       rng.EntireRow.Delete
    End If

Praktische Beispiele

Hier ist ein Beispiel, wie du mit dem Fehler umgehen kannst:

Private Sub cmd_speichern_Click()
    If txt_ID = "" And txt_bn = "" And txt_pw = "" And txt_gruppe = "" Then
        If zeile > 0 Then
            Sheets("User_aktuell").Rows(zeile).Delete
        End If
    Else
        ' Weiterverarbeitung der Daten
    End If
End Sub

Tipps für Profis

  • Debugging mit Haltepunkten: Nutze Haltepunkte im VBA-Editor, um den Code Schritt für Schritt zu durchlaufen. So kannst du genau sehen, wo der Fehler auftritt.
  • Fehlerbehandlung implementieren: Verwende On Error Resume Next oder On Error GoTo für eine bessere Fehlerbehandlung in deinem Code.

FAQ: Häufige Fragen

1. Was bedeutet "laufzeitfehler 1004 anwendungs oder objektdefinierter fehler"? Dieser Fehler tritt auf, wenn Excel einen Befehl nicht ausführen kann, entweder weil das Objekt nicht existiert oder weil ein ungültiger Befehl ausgeführt wird.

2. Wie kann ich den Fehler dauerhaft beheben? Stelle sicher, dass alle Variablen korrekt gesetzt sind und dass du nur auf existierende Objekte zugreifst. Füge Debugging-Tools hinzu, um Probleme schnell zu identifizieren.

3. Gibt es spezielle Tools zur Fehlerdiagnose in Excel VBA? Ja, der VBA-Editor bietet Debugging-Tools wie den Direktbereich, Haltepunkte und Schritt-für-Schritt-Ausführung, die dir helfen können, Probleme zu identifizieren.

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