Wenn Zelle leer, dann Wert darüber
Schritt-für-Schritt-Anleitung
Um in Excel den Wert der letzten nicht-leeren Zelle einer Spalte zu übernehmen, wenn die nächste Zelle leer ist, kannst du die folgenden VBA-Makros verwenden. Diese Anleitung setzt voraus, dass du mit Excel 2016 oder höher arbeitest.
-
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
-
Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
-
Füge das folgende Makro ein, um den Wert der letzten Zelle zu übernehmen, wenn die nächste leer ist:
Sub Makro1()
Dim wks1 As Worksheet, wks2 As Worksheet, Spalte As Integer, Zeile As Long
Set wks1 = ActiveWorkbook.Sheets("Tabelle1")
Set wks2 = ActiveWorkbook.Sheets("Tabelle2")
Spalte = 2 ' Spalte, die im wks1 durchsucht werden soll
Zeile = 1
Do Until IsEmpty(wks1.Cells(Zeile + 1, Spalte))
Zeile = Zeile + 1
Loop
wks2.Range("A3").Value = wks1.Cells(Zeile, Spalte).Value
End Sub
-
Um den vorletzten Wert zu übernehmen, kannst du das folgende Makro verwenden:
Sub Makro2()
Dim wks1 As Worksheet, wks2 As Worksheet, Spalte As Integer
Set wks1 = ActiveWorkbook.Sheets("Tabelle1")
Set wks2 = ActiveWorkbook.Sheets("Tabelle2")
Spalte = 2 ' Spalte, die im wks1 durchsucht werden soll
wks2.Range("A3").Value = wks1.Cells(65536, Spalte).End(xlUp).Offset(-1, 0).Value
End Sub
-
Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die WENN-Funktion in Excel nutzen, um ähnliche Ergebnisse zu erzielen.
=WENN(ISTLEER(B2); B1; B2)
Diese Formel prüft, ob die Zelle B2 leer ist. Wenn ja, wird der Wert von B1 zurückgegeben.
Praktische Beispiele
-
Beispiel 1: Nehmen wir an, in Tabelle1 stehen in der Spalte B folgende Werte:
10
20
(leer)
30
Mit dem Makro wird in Tabelle2 A3 der Wert 20 eingetragen.
-
Beispiel 2: Bei Verwendung des vorletzten Wertes wird in Tabelle2 A3 der Wert 10 eingetragen.
Tipps für Profis
-
Verwende die OFFSET-Funktion in Kombination mit COUNTA, um dynamisch auf die letzte nicht-leere Zelle zuzugreifen, ohne ein Makro schreiben zu müssen.
-
Achte darauf, deinen Code gut zu kommentieren, wenn du mit VBA arbeitest. Das erleichtert die spätere Wartung und Anpassung.
FAQ: Häufige Fragen
1. Kann ich das Makro für mehrere Spalten verwenden?
Ja, du kannst das Makro anpassen, indem du die Spalte änderst, die du durchsuchen möchtest, und es in einer Schleife für mehrere Spalten laufen lässt.
2. Was passiert, wenn alle Zellen leer sind?
Das Makro gibt in diesem Fall einen Fehler zurück. Du könntest eine zusätzliche Fehlerbehandlung einfügen, um dies zu vermeiden.
3. Kann ich die Lösungen auch ohne VBA umsetzen?
Ja, du kannst Excel-Formeln wie WENN und ISTLEER verwenden, um ähnliche Ergebnisse zu erzielen, allerdings mit gewissen Einschränkungen.