Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

.End(xlUp).Row + 1 funktioniert nicht

Forumthread: .End(xlUp).Row + 1 funktioniert nicht

.End(xlUp).Row + 1 funktioniert nicht
01.06.2017 07:59:43
Zoe
Hallo,
ich habe eine UserForm, mit der ich meine Daten in eine Tabelle eintrage und zwar immer in die _ letzte frei Zeile. Nut funktioniert das nicht bei der ersten Eintragung, weil die darüberliegende Zelle (Überschrift der Zeile) eine verbundene Zelle ist (3=1). Woher kommt das, wie ändere ich das? (Bei den ersten vier funktioniert es nicht, bei den anderen funktioniert es).

Private Sub CommandButton1_Click()
Cells(Cells(Rows.Count, "A").End(xlUp).Row + 1, "A").Value = TextBox1.Text 'Datum
Cells(Cells(Rows.Count, "B").End(xlUp).Row + 1, "B").Value = TextBox2.Text 'Zeit
Cells(Cells(Rows.Count, "C").End(xlUp).Row + 1, "C").Value = CDbl(TextBox3.Text) 'Temperatur
Cells(Cells(Rows.Count, "D").End(xlUp).Row + 1, "D").Value = TextBox4.Text 'Prüfer
Cells(Cells(Rows.Count, "L").End(xlUp).Row + 1, "L").Value = CDbl(TextBox5.Text) ' _
Referenzeindruck
Cells(Cells(Rows.Count, "O").End(xlUp).Row + 1, "O").Value = CDbl(TextBox6.Text) '1. Messung
Cells(Cells(Rows.Count, "P").End(xlUp).Row + 1, "P").Value = CDbl(TextBox7.Text) '2. Messung
Cells(Cells(Rows.Count, "Q").End(xlUp).Row + 1, "Q").Value = CDbl(TextBox8.Text) '3. Messung
Cells(Cells(Rows.Count, "R").End(xlUp).Row + 1, "R").Value = CDbl(TextBox9.Text) '4. Messung
Cells(Cells(Rows.Count, "S").End(xlUp).Row + 1, "S").Value = CDbl(TextBox10.Text) '5. Messung
Unload UserForm1
End Sub

Viele Grüße,
Zoe
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .End(xlUp).Row + 1 funktioniert nicht
01.06.2017 08:16:26
Werner
Hallo Zoe,
verbundene Zellen machen häufig Probleme. Vor allem wenn man bedenkt, dass es bei deren Einsatz in den meisten Fällen nur um optische Gründe geht.
Den gleichen optischen Eindruck kann man erreichen indem man die Zellen A3 bis C3 markiert, dann auf Zellen formatieren, Ausrichtung, horizontal, über Auswahl zentrieren.
Wenn du die verbundene Zellen beibehalten willst, dann musst du beachten, dass für Excel nur ein Wert in der ersten Zelle der Verbundzelle vorhanden ist.
Beispiel: Du hast eine Verbundzelle über A5 bis C5
zum Ermitteln der ersten freien Zeile mußt du dann jeweils die Spalte A benutzen. Der Wert für Excel steht nur in A5, B5 und C5 sind für Excel leer.
Gruß Werner
Anzeige
AW: .End(xlUp).Row + 1 funktioniert nicht
01.06.2017 10:32:03
Zoe
Super, danke für die erklärung, dann ist es mir jetzt klar!!!
Gerne u. Danke für die Rückmeldung. o.w.T.
01.06.2017 10:39:00
Werner
AW: .End(xlUp).Row + 1 funktioniert nicht
01.06.2017 09:13:57
Daniel
Hi
ermittle die erste Freie Zeile in einer Spalte in der es funktioniert und speichere diesen Wert in einer Variablen.
Verwende dann diese Variable:

dim Zeile as Long
Zeile = Cells(Rows.count, 12).end(xlup).Row + 1
Cells(Zeile, "A").Value = TextBox1.Text 'Datum
Cells(Zeile, "B").Value = TextBox2.Text 'Zeit
Cells(Zeile, "C").Value = CDbl(TextBox3.Text) 'Temperatur
usw

Gruß Daniel
Anzeige
AW: .End(xlUp).Row + 1 funktioniert nicht
01.06.2017 10:32:23
Zoe
Alles klar werde ich probieren, dankeschön!!!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

.End(xlUp).Row + 1 richtig verwenden in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle eine UserForm:

    • Füge eine UserForm hinzu und platziere TextBoxen für die Eingabe.
  3. Verwende den richtigen Code:

    • Du kannst die letzte freie Zeile in einer Spalte wie folgt ermitteln:
      Private Sub CommandButton1_Click()
      Dim Zeile As Long
      Zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
      Cells(Zeile, 1).Value = TextBox1.Text 'Datum
      Cells(Zeile, 2).Value = TextBox2.Text 'Zeit
      ' Weitere Eingaben hier...
      End Sub
    • Achte darauf, dass die Spalte, die du abfragst, korrekt ist und dass keine verbundenen Zellen Probleme verursachen.

Häufige Fehler und Lösungen

  • Problem: `.End(xlUp).Row + 1 funktioniert nicht bei der ersten Eintragung.
    Lösung: Stelle sicher, dass die Zelle über der ersten Zeile nicht verbunden ist oder einen Text enthält. Wenn eine verbundene Zelle die erste Zeile belegt, wird die Ermittlung der letzten Zeile fehlschlagen. Nutze stattdessen die erste Spalte, um die Zeile zu bestimmen.

  • Problem: Der Wert wird nicht in die richtige Zeile geschrieben.
    Lösung: Überprüfe, ob du die richtige Spalte in der Cells-Funktion angibst, z. B. Cells(Rows.Count, 1).End(xlUp).Row.


Alternative Methoden

  • Verwendung von ActiveSheet:

    Dim Zeile As Long
    Zeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

    Dies ist nützlich, wenn du sicherstellen möchtest, dass der Code auf dem aktiven Arbeitsblatt ausgeführt wird.

  • Mit einer Funktion: Du kannst eine Funktion erstellen, die die letzte Zeile in einer Spalte zurückgibt:

    Function LetzteZeile(spalte As Integer) As Long
       LetzteZeile = Cells(Rows.Count, spalte).End(xlUp).Row
    End Function

Praktische Beispiele

  • Daten in verschiedenen Spalten speichern:

    Private Sub CommandButton1_Click()
       Dim Zeile As Long
       Zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
       Cells(Zeile, 1).Value = TextBox1.Text 'Datum
       Cells(Zeile, 2).Value = TextBox2.Text 'Zeit
       Cells(Zeile, 3).Value = CDbl(TextBox3.Text) 'Temperatur
       ' ...weitere Eingaben
    End Sub
  • Verwendung einer anderen Spalte für die Bildung der letzten Zeile: Falls du z. B. die Spalte L verwenden möchtest:

    Zeile = Cells(Rows.Count, 12).End(xlUp).Row + 1

Tipps für Profis

  • Wenn du mit verbundenen Zellen arbeitest, führe eine Überprüfung durch, ob die Zelle leer ist:

    If IsEmpty(Cells(5, 1).Value) Then
       ' Hier kannst du Logik einfügen
    End If
  • Verwende Option Explicit am Anfang deines Codes, um sicherzustellen, dass alle Variablen deklariert sind.

  • Setze Application.ScreenUpdating = False zu Beginn deiner Makros, um die Ausführung zu beschleunigen und setze es am Ende wieder auf True.


FAQ: Häufige Fragen

1. Was mache ich, wenn .End(xlUp).Row nicht die richtige Zeile zurückgibt?
Stelle sicher, dass die Zellen in der abgefragten Spalte keine verbundenen Zellen enthalten und dass die Zelle über der letzten gefüllten Zelle tatsächlich leer ist.

2. Wie kann ich die letzte Zeile in einer bestimmten Spalte ermitteln?
Nutze den Code Cells(Rows.Count, spalte).End(xlUp).Row, wobei spalte die Nummer der gewünschten Spalte ist (z.B. 1 für Spalte A).

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