Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 424 "Objekt erforderlich"

Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 15:40:53
Natalia
Hallo zusammen,
ich soll ein Makro erstellen obwohl ich (noch) nicht so viele Kenntnisse darüber besitze.
ich habe einen Code erstellt dass sollte aus der Excel Tabelle einen Inventur Nummer aus der Liste "Übersicht" raussuchen und in der nächste Tabelle diese mit Filter aus anderen Nummer raussuchen, die entsprechenden Zeilen kopieren und in eine Neue Excel Datei speichern und dort noch Mal das Tabellen Name und die Name der Datei unter diesem Nummer zu speichern. Es sind ca.190 Daten.
Und bei der Erstellung des Codes kommen oft Fehler vor und ich leider kann diese nicht richtig beheben.
Das Code lautet:
Sub Kostenstelle()
Dim Zeile As Integer
Dim Wert As Long
' Inventur Makro
Zeile = 4
Wert = Cells(Zeile, "B").Value
Do While Zeile = Wert
Zeile = Zeile + 1
ActiveWorkbook.Sheets("Übersicht").Select
 Cells(Zeile, "B").Value.Select
    Selection.Copy
Sheets("Datenbasis Original").Select
ActiveSheet.Range("$A$3:$X$7831").AutoFilter Field:=6, Criteria1:= _
Cells(Zeile, "B").Value
Rows("1:7832").Select
Application.CutCopyMode = False
Selection.Copy
Workbooks.Add
Rows("1:1").Select
ActiveSheet.Paste
Range("F4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle1").Select
Sheets("Tabelle1").Name = Wert
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = Wert
ActiveWorkbook.SaveAs Filename:= _
"Z:\Desktop\Inventur\Wert.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
Sheets("Übersicht").Select
Loop
End Sub
Bei Fett markierte Text zeigt sich das Laufzeitfehler 424 " Objekt erforderlich". was kann hier anders sein? können Sie mir dabei bitte helfen?
Tausend Mal Danke für die Mühe
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 15:54:14
Stef
Hallo Natalia,
Cells(Zeile, "B").Select
(das .Value wird nicht benötigt)
mfg
Stef
AW: Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 16:03:43
Natalia
Danke für dein Hinweis.
Jetzt leider zeigt mir Fehler beim "Wert" Eingaben
'
Zeile = 4
Wert = Cells(Zeile, "B") Laufzeitehler 6 Überlauf
'
ActiveWorkbook.Sheets("Übersicht").Select
Cells(Zeile, "B").Select
Soll das "Wert" nicht vorher definiert?
Noch Mal danke :)
Anzeige
AW: Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 19:17:10
Daniel
Hi
überlauf deutet an, dass die Zahl, die du der Variable WERT übergeben willst, zu groß ist für die Dimensioniertung der der Variable.
du hast WERT als LONG deklariert, dh die Variable kann Ganzzahlen bis maximal 2.147.483.647 aufnehmen.
Versuchst du eine größere Zahl in die Variable zu schreiben, kommt der Fehler 6.
was steht denn in der betroffenen Zelle drin?
Gruß Daniel
Anzeige
AW: Laufzeitfehler 424 "Objekt erforderlich"
05.07.2019 08:58:56
Natalia
Hi
in die Zelle sind Zahlen, aber ohne Komma( könnte sein die kommen zu groß vor). Ich habe statt Long, String eingegeben und es läuft!!!!
Vielen Dank für deine Unterstützung
AW: Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 15:54:46
Matthias
Hallo
Probiers erst mal so:
Cells(Zeile, "B").Select
also ohne value
Später dann, sollte es so klappen nehmen wir mal Stück für Stück das SELECT raus.
Gruß Matthias
Anzeige
AW: Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 16:05:08
Natalia
Danke für deine Unterstützung.
Wie meinst du SELECT rauszunehmen? kann das Code dann noch laufen?
Ja ...
04.07.2019 16:10:36
Matthias
Hallo
... die Zelle muss nicht explizit markiert werden um den Inhalt zu Kopieren
Würde also auch so gehen:
ActiveWorkbook.Sheets("Übersicht").Cells(Zeile, "B").Copy
also ohne SELECT.
Gruß Matthias
Anzeige
AW: Laufzeitfehler 424 "Objekt erforderlich"
04.07.2019 19:05:56
Daniel
Ja, der Code läuft auch ohne.
der Recorder zeichnet das Select nur auf, weil wir Mausschubser so arbeiten müssen:
1. Objekt auswählen
2. Befehl auswählen
in VBA kann man jedoch den Befehl auch direkt auf das Objekt anwenden.
als statt
xxx.Select
Selection.yyy 

kann man auch immer schreiben:
xxx.yyy
weiteres findest du hier: https://online-excel.de/excel/singsel_vba.php?f=78
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 424 "Objekt erforderlich" in Excel VBA beheben


Schritt-für-Schritt-Anleitung

Wenn Du mit dem Laufzeitfehler 424 "Objekt erforderlich" in Excel VBA konfrontiert bist, folge diesen Schritten, um das Problem zu beheben:

  1. Überprüfe die Zeile mit dem Fehler: In Deinem Code tritt der Fehler im Abschnitt Cells(Zeile, "B").Value.Select auf. Ersetze diesen Code durch Cells(Zeile, "B").Copy oder entferne .Select und arbeite direkt mit dem Objekt.

  2. Variablen richtig deklarieren: Stelle sicher, dass die Variablen korrekt deklariert sind. Wenn eine Zelle einen Wert hat, der zu groß für die Datentypen ist, wie bei Wert, kann der Laufzeitfehler 6 (Overflow) auftreten. Ändere den Datentyp von Long auf String, wenn Du mit großen Zahlen arbeitest.

  3. Vermeide die Verwendung von .Select: Statt ActiveWorkbook.Sheets("Übersicht").Select und dann Cells(Zeile, "B").Select, schreibe einfach ActiveWorkbook.Sheets("Übersicht").Cells(Zeile, "B").Copy. Dies macht den Code effizienter.

  4. Teste den Code: Führe das Makro aus und überprüfe, ob der Fehler weiterhin auftritt.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 424: Objekt erforderlich: Dieser Fehler tritt auf, wenn Du versuchst, auf ein Objekt zuzugreifen, das nicht existiert. Achte darauf, dass alle Arbeitsblätter und Zellen korrekt referenziert sind.

  2. Laufzeitfehler 6: Überlauf: Wenn Du versuchst, eine Zahl in eine Variable zu speichern, die zu groß ist, tritt dieser Fehler auf. Ändere den Datentyp der Variable in String, wenn Du mit großen Zahlen arbeitest.

  3. Fehler beim Kopieren von Werten: Stelle sicher, dass Du Copy oder Value korrekt anwendest. Vermeide die Verwendung von .Select, um die Wahrscheinlichkeit von Laufzeitfehlern zu verringern.


Alternative Methoden

  1. Direktes Arbeiten mit Objekten: Anstatt .Select zu verwenden, arbeite direkt mit dem Objekt:

    ActiveWorkbook.Sheets("Übersicht").Cells(Zeile, "B").Copy

    Dies reduziert die Wahrscheinlichkeit von Laufzeitfehlern und macht den Code schneller.

  2. Debugging: Verwende die Debugging-Tools in VBA, um zu sehen, wo der Fehler auftritt. Setze Breakpoints und überprüfe die Werte der Variablen während der Ausführung.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um zu zeigen, wie man den Laufzeitfehler 424 vermeidet:

Sub Beispiel()
    Dim Zeile As Integer
    Dim Wert As String
    Zeile = 4
    Wert = ActiveWorkbook.Sheets("Übersicht").Cells(Zeile, "B").Value
    ActiveWorkbook.Sheets("Datenbasis Original").Cells(1, 1).Value = Wert
End Sub

In diesem Beispiel wird der Wert direkt in die Variable Wert gespeichert, ohne die .Select-Methode.


Tipps für Profis

  • Vermeide die Nutzung von .Select: Je weniger du mit .Select arbeitest, desto stabiler und schneller wird dein Code.

  • Verwende Option Explicit: Aktiviere Option Explicit zu Beginn Deiner Module. Dadurch musst Du alle Variablen deklarieren, was die Fehlersuche erleichtert.

  • Nutze Fehlerbehandlungsroutinen: Implementiere Fehlerbehandlungen mit On Error Resume Next und On Error GoTo, um den Code resilienter zu machen.


FAQ: Häufige Fragen

1. Was bedeutet Laufzeitfehler 424?
Der Laufzeitfehler 424 tritt auf, wenn ein benötigtes Objekt in VBA nicht gefunden werden kann.

2. Wie kann ich Laufzeitfehler 6 (Overflow) vermeiden?
Verwende einen geeigneten Datentyp. Wenn Du große Zahlen hast, nutze String anstelle von Long.

3. Warum sollte ich .Select vermeiden?
Die Verwendung von .Select kann zu Laufzeitfehlern führen und macht den Code langsamer und weniger übersichtlich. Arbeite direkt mit den Objekten.

4. Wie kann ich meinen Code effizienter gestalten?
Verwende direkte Referenzen zu Zellen und Blättern, um die Ausführung zu beschleunigen und Laufzeitfehler zu vermeiden.

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