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

Laufzeitfehler -214741848 (80010108)

Forumthread: Laufzeitfehler -214741848 (80010108)

Laufzeitfehler -214741848 (80010108)
08.03.2021 13:24:13
Benjamin
Hallo Leute,
langsam verzweifle ich, ich hoffe Ihr könnt mir helfen.
Für unsere Kantine habe ich ein kleines Skrip geschrieben, was einfach dafür sorgen soll, dass die Speisen und die Namen derjeniger, die die Speisen zu sich nehmen, erfasst werden soll. Dafür habe ich eine Userform generiert. Nachdem die Speise eingeben wurde und Enter gedrückt wurde, werden die Werte in die Tabelle Auswertung geschrieben und die Userform leergemacht. Anhand der Variablen Nextrow wird dann die nächste Zeile ausgewählt.
73 mal geht alles gut, bei der Nummer 74 erhalte ich denn den Fehler:
Laufzeitfehler -214741848 (80010108)
Die Methode Cells für das Objekt _Worksheet ist fehlgeschlagen

Hier ist der Code, den ich verwende:
Private Sub LebensmittelTXTBX_AfterUpdate()
nextrow = Worksheets("Auswertung").Cells(1, 4).Value
If nextrow = 0 Then nextrow = 1
Worksheets("Auswertung").Cells(nextrow, 1) = MitarbeiterTXTBX
Worksheets("Auswertung").Cells(nextrow, 2) = LebensmittelTXTBX
Worksheets("Auswertung").Cells(nextrow, 1).Select
nextrow = nextrow + 1
Worksheets("Auswertung").Cells(1, 4).Value = nextrow
Unload Eingabemaske
Eingabemaske.Show

Beim Debuggen stört er sich dann an der Zeile Worksheets("Auswertung").Cells(nextrow, 1) = MitarbeiterTXTBX, aber wie gesagt 73 mal geht alles gut....
nextrow habe ich bereits als integer und auch als long deklariert, da gabs keine Änderung.
Ich wäre euch sehr für Eure Hilfe dankbar.

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler -214741848 (80010108)
08.03.2021 13:34:06
MRUTOR
Hallo Benjamin,
waere besser, die Datei zu haben, in der der Fehler auftritt. Leere diese und lade sie mal hoch.
Verstehe eh nicht, warum du nicht VBA selbst nach der naechsten freien Zeile suchen laesst.
Gruss Tor

AW: Laufzeitfehler -214741848 (80010108)
08.03.2021 13:40:55
Nepumuk
Hallo Benjamin,
teste mal:
Private Sub LebensmittelTXTBX_AfterUpdate()
    
    Dim nextrow As Long
    
    With Worksheets("Auswertung")
        
        nextrow = Application.Max(.Cells(1, 4).Value, 1)
        
        .Cells(nextrow, 1).Value = MitarbeiterTXTBX.Text
        .Cells(nextrow, 2).Value = LebensmittelTXTBX.Text
        
        .Cells(1, 4).Value = nextrow + 1
        
    End With
    
    MitarbeiterTXTBX.Text = vbNullString
    LebensmittelTXTBX.Text = vbNullString
    
End Sub

Gruß
Nepumuk

Anzeige
AW: Laufzeitfehler -214741848 (80010108)
08.03.2021 14:03:15
Benjamin
https://www.herber.de/bbs/user/144563.xlsm
Anbei findet Ihr die Datei.
Da zu Anfang geprüft wird, ob eine Datei mit dem heutigen Datum bereits vorhanden ist und ansonsten eine erzeugt wird, braucht Ihr Bitte einen Ordner "Gespeicherte Erfassungen" auf dem Desktop

Anzeige
AW: hier auch noch
08.03.2021 14:21:59
Benjamin
Moin Werner,
ich weiß nicht, wo das Problem ist?
Ich frage in mehreren Foren gleichzeitig nach Hilfe, ist das etwa nicht in Ordnung?

Anzeige
dann informiere dich mal über Crossposting
08.03.2021 14:27:59
Werner
Hallo,
macht ja nichts, wenn sich mehrere Helfer in den verschiedenen Foren mit deinem Problem beschäftigen und ggf. die selbe Problemlösung anbieten.
Dann hat mindestens einer davon für den Papierkorb gearbeitet, weil beide nichts voneinander wissen.
Würdest du für eine Fahrt zum Bahnhof auch zwei Taxen bestellen? Wohl eher nicht, weil du dafür bezahlen müsstest.
Gruß Werner

Anzeige
AW: dann informiere dich mal über Crossposting
08.03.2021 14:32:40
Benjamin
Ok, da hast Du Recht, verstehe was Du meinst.
Bin neu im selbst Hilfe anfragen, kam sonst immer durch reines Nachlesen klar.

AW: Laufzeitfehler -214741848 (80010108)
08.03.2021 14:23:31
Benjamin
https://www.herber.de/bbs/user/144564.xlsm
Ich habe die Datei nochmal hochgeladen und die automatischen Startskripte am Anfang rausgenommen.
Diese führen sonst nur zu fehlern, wenn die Dateien nicht genau so heißen, wie ich Sie ursprünglich benannt habe.

Anzeige
AW: Laufzeitfehler -214741848 (80010108)
09.03.2021 10:18:45
MRUTOR
so also ich hab mal deine Datei ausprobiert. Irgendwas ist da komplett faul. Bei mir schmiert Excel komplett ab beim 69. Versuch.
Ich schau mal komplett drueber.
Gruss Tor

AW: Laufzeitfehler -214741848 (80010108)
09.03.2021 10:48:11
MRUTOR
Und schon die erste Frage.
Du benutzt eine Variable "Mitarbeiternummer". Wo wird diese deklariert und wo bekommt diese einen Wert? Du vergleichst diese in dieser Zeile:
If Worksheets("Auswertung").Cells(zelleauswertung, 1) = Mitarbeiternummer Then

Da die Variable nie einen Wert bekommt, wird dieses If wohl nicht arbeiten, wie es soll.
Um nicht immer hier auf Antwort zu warten, melde dich mal per email bei mir. Das wird einfacher. Vielleicht finden wir auch nen anderen Weg, direkt zu kommunizieren.
torsten.wetzel@avantorsciences.com
Gruss Tor
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler -214741848 (80010108) in Excel beheben


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler -214741848 (80010108) in Excel zu beheben, folge diesen Schritten:

  1. Code überprüfen: Stelle sicher, dass alle Variablen korrekt deklariert sind. In diesem Fall wird die nextrow-Variable verwendet, um die nächste freie Zeile zu ermitteln.

    Dim nextrow As Long
  2. Maximale Zeile finden: Verwende Application.Max, um sicherzustellen, dass nextrow immer einen gültigen Wert hat. Ersetze den ursprünglichen Code durch:

    With Worksheets("Auswertung")
       nextrow = Application.Max(.Cells(1, 4).Value, 1)
  3. Werte zuweisen: Weise die Werte den Zellen zu. Achte darauf, dass die Text-Eigenschaft bei Textfeldern verwendet wird:

    .Cells(nextrow, 1).Value = MitarbeiterTXTBX.Text
    .Cells(nextrow, 2).Value = LebensmittelTXTBX.Text
  4. Nächste Zeile aktualisieren: Aktualisiere die nextrow-Variable nach dem Einfügen der Daten:

    .Cells(1, 4).Value = nextrow + 1
  5. Userform zurücksetzen: Setze die Eingabefelder zurück, um die Userform für die nächste Eingabe vorzubereiten:

    MitarbeiterTXTBX.Text = vbNullString
    LebensmittelTXTBX.Text = vbNullString

Häufige Fehler und Lösungen

  • Problem: Der Fehler Laufzeitfehler -214741848 (80010108) tritt auf, wenn der Code auf eine Zelle zugreift, die nicht existiert.

    • Lösung: Überprüfe, ob nextrow einen gültigen Wert hat, bevor du auf die Zelle zugreifst. Achte darauf, dass die Zellen nicht über die Grenzen des Arbeitsblattes hinausgehen.
  • Problem: Excel stürzt ab oder friert ein.

    • Lösung: Stelle sicher, dass alle automatischen Skripte aus dem Code entfernt werden, die beim Start von Excel ausgeführt werden.

Alternative Methoden

Eine alternative Methode, um den Laufzeitfehler zu vermeiden, besteht darin, die nächste freie Zeile mithilfe einer Schleife zu suchen:

Do While Not IsEmpty(Worksheets("Auswertung").Cells(nextrow, 1))
    nextrow = nextrow + 1
Loop

Diese Methode stellt sicher, dass die nächste freie Zeile immer korrekt ermittelt wird, ohne auf eine bestimmte Zelle zuzugreifen, was den laufzeitfehler vba vermeiden kann.


Praktische Beispiele

Hier ist ein Beispiel für eine vollständige Subroutine, die den Fehler behandeln kann:

Private Sub LebensmittelTXTBX_AfterUpdate()
    Dim nextrow As Long
    With Worksheets("Auswertung")
        nextrow = Application.Max(.Cells(1, 4).Value, 1)
        .Cells(nextrow, 1).Value = MitarbeiterTXTBX.Text
        .Cells(nextrow, 2).Value = LebensmittelTXTBX.Text
        .Cells(1, 4).Value = nextrow + 1
    End With
    MitarbeiterTXTBX.Text = vbNullString
    LebensmittelTXTBX.Text = vbNullString
End Sub

Tipps für Profis

  • Fehlerhandling: Implementiere ein Fehlerhandling, um unerwartete Fehler zu protokollieren und besser zu verstehen, wo der Code möglicherweise scheitert.
On Error GoTo ErrorHandler

' Dein Code hier

Exit Sub
ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub
  • Speicher regelmäßig: Achte darauf, dass Du Deine Excel-Datei regelmäßig speicherst, um Datenverlust zu vermeiden, insbesondere wenn Du mit VBA arbeitest.

FAQ: Häufige Fragen

1. Was bedeutet der Laufzeitfehler -214741848 (80010108)?
Dieser Fehler tritt auf, wenn Excel versucht, auf ein Objekt zuzugreifen, das nicht verfügbar ist, häufig aufgrund einer ungültigen Zellreferenz oder einer nicht deklarierten Variable.

2. Wie kann ich den Fehler in meinem VBA-Code vermeiden?
Stelle sicher, dass alle Variablen korrekt deklariert sind und dass Du beim Zugriff auf Zellen die Grenzen des Arbeitsblattes nicht überschreitest. Verwende Application.Max, um sicherzustellen, dass der Wert immer gültig ist.

3. Was soll ich tun, wenn Excel abstürzt?
Wenn Excel beim Ausführen deines Codes abstürzt, deaktiviere vorübergehend alle automatischen Skripte und überprüfe, ob der Fehler weiterhin auftritt. Es kann auch hilfreich sein, die Datei auf einen vorherigen Zustand zurückzusetzen.

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