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

letzte Zeile finden in anderem Tabellenb

Forumthread: letzte Zeile finden in anderem Tabellenb

letzte Zeile finden in anderem Tabellenb
27.02.2020 07:24:43
Timonski
Servus...
ich bin ratlos... ich hatte eine Formel in einer USERFORM, mit der ich die letzte Zeile auf einem anderen Tabellenblatt herausfand:
Dim LETZTEZEILE As Long
LETZTEZEILE = Worksheets("Index").Range("G5000").End(xlUp).Row
seit gestern abend komme "Laufzeitfehler 40036 - Anwendungs- oder objektdefinierter Fehler"
ich hab zwar einiges geändert an dieser Datei, aber dies sollte doch funktionieren... oder?
das Ziel ist, eine Listbox zu füllen... aber selbst wenn ich die Listbox ohne LETZTEZEILE schreib, kommt die Meldung...
vorher:
Me.FORMAUFTRAGSART.List = Worksheets("Index").Range("G2:G" & lngUntersterEintrag).Value
jetzt:
Me.FORMAUFTRAGSART.List = Worksheets("Index").Range("G2:G1000")
auch nun bringt er diesen Laufzeitfehler *grr*
bin während dem Schreiben noch am ausprobieren...
ich hatte auf der "INDEX" Seite diesen Befehl zum erstellen von mehreren Unterverzeichnissen
Declare Function MakePath Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
wenn ich diesen Befehl in ein "Modul" schreib, dann kommt der "Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler"
Ich blicks nicht mehr :-(
Gruß
Timo
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ERLEDIGT!!letzte Zeile finden in anderem Tabellenb
27.02.2020 07:26:26
Timonski
ALLES GUT... ES WAR WIRKLICH DER BEFEHL
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile in Excel finden und Fehler beheben


Schritt-für-Schritt-Anleitung

Um die letzte Zeile in einem anderen Tabellenblatt zu finden, kannst Du den folgenden VBA-Code verwenden. Dieser Code ist besonders nützlich, wenn Du beispielsweise eine Listbox in einer UserForm füllen möchtest.

  1. Öffne den VBA-Editor mit ALT + F11.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Dim LETZTEZEILE As Long
    LETZTEZEILE = Worksheets("Index").Range("G5000").End(xlUp).Row
  4. Um die Listbox zu füllen, kannst Du folgenden Code verwenden:

    Me.FORMAUFTRAGSART.List = Worksheets("Index").Range("G2:G" & LETZTEZEILE).Value
  5. Stelle sicher, dass das Tabellenblatt "Index" existiert und die Daten in Spalte G korrekt sind.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der auftreten kann, ist der Laufzeitfehler 40036 oder 1004. Hier sind einige Lösungen:

  • Laufzeitfehler 40036: Dieser Fehler tritt häufig auf, wenn auf ein nicht existierendes Objekt zugegriffen wird. Überprüfe, ob das Tabellenblatt "Index" korrekt benannt ist und ob die Range "G2:G1000" tatsächlich Daten enthält.

  • Laufzeitfehler 1004: Dieser Fehler kann auftreten, wenn das angegebene Objekt nicht gefunden werden kann. Achte darauf, dass der Befehl zum Erstellen von Unterverzeichnissen nicht in einem Modul ausgeführt wird, wenn es nicht notwendig ist.


Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch folgende Excel-Formeln nutzen:

  • INDEX & VERGLEICH: Diese Kombination kann Dir helfen, die letzte Zeile in einem Tabellenausschnitt zu finden.

    =INDEX(G:G, MAX((G:G<>"")*(ROW(G:G))))
  • AGGREGAT-Funktion: Eine weitere Möglichkeit ist die Verwendung der AGGREGAT-Funktion, um die letzte nicht-leere Zeile zu ermitteln.

    =AGGREGAT(14, 6, G:G/(G:G<>""), 1)

Praktische Beispiele

Hier ein praktisches Beispiel, wie Du die letzte Zeile in einer Listbox anzeigen kannst:

  1. Angenommen, Du hast eine Tabelle im Blatt "Index" mit Werten in Spalte G.
  2. Füge eine UserForm hinzu und platziere eine Listbox darauf.
  3. Verwende den oben genannten VBA-Code, um die Listbox zu füllen, wenn die UserForm geladen wird:

    Private Sub UserForm_Initialize()
       LETZTEZEILE = Worksheets("Index").Range("G5000").End(xlUp).Row
       Me.FORMAUFTRAGSART.List = Worksheets("Index").Range("G2:G" & LETZTEZEILE).Value
    End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang Deiner Module. Das zwingt Dich dazu, alle Variablen zu deklarieren, was Fehler reduziert.
  • Halte Deinen Code modular und benutze Funktionen, um wiederkehrende Aufgaben zu vereinfachen.
  • Verwende Debug.Print, um Variablenwerte während der Ausführung zu überwachen und Fehlerquellen schneller zu identifizieren.

FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile in einer großen Tabelle?
Du kannst die Methode mit Range("G5000").End(xlUp).Row verwenden, um schnell die letzte Zeile in einer großen Tabelle zu finden.

2. Was mache ich, wenn die Listbox leer bleibt?
Überprüfe, ob die Range korrekt ist und ob das Tabellenblatt "Index" existiert. Stelle sicher, dass die Daten in der angegebenen Spalte vorhanden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige