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

Forumthread: VBA letzte Zeile ermitteln und Wert eintragen

VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 10:37:24
hhrm
Hallo zusammen,
ich habe eine Tabelle mit Daten in Spalte D.
Ich möchte nun per VBA
-die letzte Zeile in Spalte D rausfinden
-und anhand dessen 2 Zeilen unter der letzten Zeile in Spalte B ein X setzen lassen.
(brauche ich für weitere Verknüpfungen)
Gibt es da eine VBA-Formel für?
Danke für eure Tipps!
Gruß
hhrm
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 10:44:50
Werner
Hallo,
z.B. so:
Dim loLetzte AS Long
With Worksheets("Tabelle1") 'Blattname anpassen
loLetzte = .Cells(.Rows.Count, 4).End(xlUp).Row + 2
.Cells(loLetzte, 4) = "X"
End Wirh
Gruß Werner
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 11:07:48
hhrm
schon mal danke!
funktioniert aber leider nicht.....er trägt mir das "X" nicht ein!
Gruß hhrm
Anzeige
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 10:55:15
Werner
Hallo,
oder als "Einzeiler"
Worksheets("Tabelle1").Cells(Rows.Count, 4).End(xlUp).Offset(2, 0) = "X"
Gruß Werner
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 11:14:45
hhrm
auch gut....jetzt funktioniert es!
leider sind in der Spalte D formeln drin...die auch als ergebnis garnichts (also "") anzeigen.
gibt es auch die Variante für die letzte Zeile, wo ein Wert errechnet wurde?
Danke!
Anzeige
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 11:27:51
Werner
Hallo,
dir ist aber schon klar, dass du dir dabei deine Formel überschreibst?
Public Sub Test()
Dim loLetzte As Long
With Worksheets("Tabelle1") 'anpassen
loLetzte = .Columns(4).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:= _
xlPrevious).Row
.Cells(loLetzte + 2, 4) = "X"
End With
End Sub
Gruß Werner
Anzeige
...in Spalte B ein X setzen lassen....owT
19.07.2017 11:43:45
robert
wer lesen kann... Danke für den Hinweis. o.w.T.
19.07.2017 11:45:03
Werner
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 11:47:07
Werner
Hallo,
Robert hat mich auf einen Fehler meinerseits hingewiesen. Mein Code schreibt das X in die Spalte D. Hier der geänderte Code:
Public Sub Test()
Dim loLetzte As Long
With Worksheets("Tabelle1") 'anpassen
loLetzte = .Columns(4).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:= _
xlPrevious).Row
.Cells(loLetzte + 2, 2) = "X"
End With
End Sub
Gruß Werner
Anzeige
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 11:49:40
hhrm
supi....es klappt.
VIELEN VIELEN DANK!
er überschreibt mir die Formel nicht sondern er trägt das "X" in die Spalte B ein:
Public Sub Test()
Dim loLetzte As Long
With Worksheets("Tabelle1") 'anpassen
loLetzte = .Columns(4).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:= _
xlPrevious).Row
.Cells(loLetzte + 2, 3) = "X"
End With
End Sub
Gruß
hhrm
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
19.07.2017 11:52:14
Werner
AW: VBA letzte Zeile ermitteln und Wert eintragen
19.07.2017 11:53:38
hhrm
sorry hatte es auch falsch geschrieben....das "X" sollte in Spalte C also 3.
Ich habe es schon angepasst.
Gibt es jetzt noch die Möglichkeit, bei jeder Änderung im Tabellenblatt die vorher gesetzten "x" in Spalte C zu löschen und dann erst das neue X zu setzen?
Nachfragen und Beispielmappe
19.07.2017 11:56:49
Werner
Hallo,
-was meinst du mit "bei jeder Änderung"?
-sind in Spalte C noch andere Werte, außer den X
Bitte die Fragen beantworten und am besten noch eine Beispielmappe hochladen.
Gruß Werner
Anzeige
AW: Nachfragen und Beispielmappe
19.07.2017 12:31:37
hhrm
Ich habe Datenschnitte im Tabellenblatt, so dass sich die Daten bzw. auch die Anzahl der Zeilen je nach Auswahl anpassen!
in der Spalte C steht ausser dem X kein Wert
;

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

VBA: Letzte Zeile ermitteln und Wert eintragen


Schritt-für-Schritt-Anleitung

Um die letzte Zeile in einer bestimmten Spalte zu ermitteln und einen Wert darunter einzufügen, kannst du die folgende VBA-Prozedur verwenden. Diese Anleitung basiert auf dem Beispiel, das im Forumthread diskutiert wurde.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Public Sub Test()
       Dim loLetzte As Long
       With Worksheets("Tabelle1") ' Blattname anpassen
           loLetzte = .Columns(4).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
           .Cells(loLetzte + 2, 2) = "X" ' Wert in Spalte B eintragen
       End With
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um das "X" in die gewünschte Zelle einzufügen.


Häufige Fehler und Lösungen

  • Problem: Das "X" wird nicht korrekt eingetragen.

    • Lösung: Stelle sicher, dass der Blattname in .Worksheets("Tabelle1") korrekt ist. Überprüfe auch, dass die Spalte, in der du die letzte Zeile suchst, richtig angegeben ist (in diesem Fall Spalte D).
  • Problem: Der Code überschreibt eine Formel.

    • Lösung: Verwende .Find anstelle von .End(xlUp), um die letzte beschriebene Zeile zu ermitteln. Der angepasste Code sieht so aus:
    Public Sub Test()
       Dim loLetzte As Long
       With Worksheets("Tabelle1")
           loLetzte = .Columns(4).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
           .Cells(loLetzte + 2, 2) = "X"
       End With
    End Sub

Alternative Methoden

Wenn du die letzte Zeile ohne VBA ermitteln möchtest, kannst du die Funktion =MAX(WENN(D:D<>"",ZEILE(D:D))) in einer Formel verwenden. Diese Formel gibt die letzte Zeile mit Inhalt in Spalte D zurück. Achte darauf, die Formel mit STRG + SHIFT + ENTER einzugeben, um sie als Matrixformel zu verwenden.


Praktische Beispiele

Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst, um unterschiedliche Anforderungen zu erfüllen:

  1. Letzte Zeile mit Inhalt ermitteln:

    Dim loLetzte As Long
    loLetzte = .Columns(4).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
  2. Wert in einer anderen Spalte eintragen: Ändere die Cells-Anweisung:

    .Cells(loLetzte + 2, 3) = "X" ' Wert in Spalte C eintragen

Tipps für Profis

  • Verwende Offset, um flexibel die Position des einzutragenden Wertes zu bestimmen, z.B.:

    .Cells(loLetzte, 2).Offset(2, 0) = "X"
  • Um die letzte Zeile in einer Tabelle zu ermitteln, kannst du den Befehl .ListObjects("Tabelle1").ListRows.Count verwenden, um die Anzahl der vorhandenen Zeilen in einer Excel-Tabelle zu erhalten.


FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile einer bestimmten Tabelle?
Du kannst die Methode .ListObjects("Tabelle1").ListRows.Count verwenden, um die Anzahl der Zeilen in der Tabelle zu ermitteln.

2. Was passiert, wenn die letzte Zeile leer ist?
Der Code sucht immer nach der letzten beschriebene Zeile. Wenn also die letzte Zeile leer ist, wird die letzte gefüllte Zeile ermittelt.

3. Kann ich diesen Code automatisch bei Änderungen im Blatt ausführen?
Ja, du kannst den Code in das Worksheet-Event Worksheet_Change einfügen, damit er bei jeder Änderung ausgeführt wird.

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