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

Forumthread: Kursor soll auf die erste leere Zelle springen

Kursor soll auf die erste leere Zelle springen
Nibio
Hallo Profis,
wie lautet den script um per Makro den cursor auf die erste leere Zelle in eine Spalte zu posizionieren?
Wenn eine Spalte komplett leer ist, soll natürlich von die erste Zeile anfangen (erste nicht leere Zelle).
Vielen Dank im Voraus
Gruß
Nibio
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:34:20
Tino
Hallo,
versuche es mal so.
Dim LRow As Long, LCol As Long

LCol = 1 'Spalte angeben? 
LRow = IIf(IsEmpty(Cells(Rows.Count, LCol)), Cells(Rows.Count, LCol).End(xlUp).Row, Cells(Rows.Count, LCol).Row)
LRow = IIf(IsEmpty(Cells(LRow, LCol)), LRow, LRow + 1)

Cells(LRow, LCol).Select
Gruß Tino
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:41:43
Nibio
Danke, hat aber auch nichr geholfen.
Gruß
Nibio
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:42:19
Nibio
kommt Fehler Meldung, Debuggen usw...
Gruß
Nibio
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:34:39
Oberschlumpf
Hi
Versuch mal das hier:

If Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
Range("A1").Select
Else
Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1).select
End If
Hilfts?
Ciao
Thorsten
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:39:22
Nibio
Danke, aber das hat nicht geholfen, wenn die Spalte leer ist, springt er in Zeile NR. 5
Gruß
Nibio
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:42:14
Oberschlumpf
Zeig mal deine Datei.
Ciao
Thorsten
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:52:11
Nibio
Hier meine Datei.
https://www.herber.de/bbs/user/64295.xls
Makro ausführen
Gruß
Nibio
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:59:52
Oberschlumpf
ändere das Makro wie folgt:

If Cells(Rows.Count, 18).End(xlUp).Row = 1 Then
Range("R1").Select
Else
Range("R" & Cells(Rows.Count, 18).End(xlUp).Row + 1).Select
End If

In der Codezeile mit Cells... musst du genau die Spalte angeben, die du überprüfen willst.
In deinem Code ist es die Spalte R
R befindet sich im Alphabet an Stelle 18
Wenn du z Bsp Spalte F überprüfen willst, dann musst du anstelle von 18 die Zahl 6 eingeben, weil sich F im Alphabet an Stelle 6 befindet...du verstehst?
Läuft es denn jetzt so, wie du möchtest?
Ciao
Thorsten
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 11:29:06
Nibio
Herzlichen Dank,
mit dieser lösung habe ich keine große Probleme, funktioniert, das einzige problem ist:
Wenn nur Zelle R1 belegt ist, dann spring der cursor nicht an die nächste leere Zelle, sondern bleibt in R1.
Wenn mehr als 2 Zeile belegt sind, dann funktioniert gut.
Gruß
Nibio
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 16:27:46
Oberschlumpf
Hi
Sorry, dass ich erst jetzt antworte..ich war unterwegs.
Ja, du hast Recht. Ich habe etwas vergessen.
Versuch es mal so:

If Cells(Rows.Count, 18).End(xlUp).Row = 1 And Range("R1").Value = "" Then
Range("R1").Select
Else
Range("R" & Cells(Rows.Count, 18).End(xlUp).Row + 1).Select
End If
In der ersten Zeile wird geprüft, ob die letzte, benutzte Zelle in Zeile 1 liegt und ob diese Zelle leer ist.
Wenn JA, dann wird auch die Zelle in Zeile 1 angewählt.
Wenn eine der Bedingungen nicht zutrifft, dann wird die nächset freie Zelle angewählt.
Hilft es jetzt genau so wie du willst?
Ciao
Thorsten
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 12:29:11
Nibio
Hallo Thorsten,
geht das nicht so:
wenn Zelle R1 ist leer, gehe zu R1 sonst /wenn nicht leer) gehe zu R1 und springe bis zu nächste leere Zeile. Wenn das hier in script konvertiert wird, dann müßte funktionieren.
Danke sehr.
Nibio
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:46:04
MichaV
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Long
Dim c As Long
On Error Resume Next
Application.EnableEvents = False
c = ActiveCell.Column
r = Cells(Cells.Rows.Count, c).End(xlUp).Row
If Not (r = 1 And Cells(r, c) = "") Then
r = r + 1
End If
Cells(r, c).Select
Application.EnableEvents = True
End Sub

Anzeige
letzter Versuch...
09.09.2009 10:54:34
Tino
Hallo,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim LRow As Long, LCol As Long

Application.EnableEvents = False

LCol = Target(1).Column 'Spalte angeben? 
LRow = IIf(IsEmpty(Cells(Rows.Count, LCol)), Cells(Rows.Count, LCol).End(xlUp).Row, Cells(Rows.Count, LCol).Row)
LRow = IIf(IsEmpty(Cells(LRow, LCol)), LRow, LRow + 1)

Cells(LRow, LCol).Select

Application.EnableEvents = True

End Sub
Gruß Tino
Anzeige
AW: Kursor soll auf die erste leere Zelle springen
09.09.2009 10:55:41
Nibio
Funktioniert auch nicht, nur Fehlermeldungen,
Die Spallte muss ich aber schon feststellen können.
Danke trotzdem
Gruß
Nibio
..dann machst du was falsch, denn
09.09.2009 11:02:02
robert
hi,
die lösungen von MichaV und Tino
funktionieren doch.
gruß
robert
AW: ..dann machst du was falsch, denn
09.09.2009 11:23:08
Nibio
Hallo,
ja, das muss wohl so sein. Ich kenne mich leider nicht aus, meine Makros sehen so aus:
Sub Makro1()
End Sub
Wenn ich die Lösung von Tino einfüge, dann finde ich das makro nicht in der Liste (es fängt _ nicht mit

Sub Makroname an). Ich mache meine Makros per aufzeichnung, und später kleine anpassungen in  _
den script, wie z.B spingen bis zu letzte nicht leere Zeile usw...
Ich möchte mich an euch allen trotzdem bedanke.
Gruß
Nibio

Anzeige
AW: ..dann machst du was falsch, denn
09.09.2009 11:54:39
robert
hi,
der code gehört nicht in ein modul(makro), sonder in das arbeitsblatt.
rechte maustaste auf tbellenreiter-code anzeigen-den code einfügen
gruß
robert
AW: ..dann machst du was falsch, denn
09.09.2009 11:59:59
Nibio
das hatte ich auch versucht, aber ich weiss dann nicht wie ich diese script aufrufe kann oder in ein Button zuweisen kann.
Gruß
Nibio
Anzeige
AW: ..dann machst du was falsch, denn
09.09.2009 12:02:18
Nibio
Die Lösung von Oberschlumpf, wäre für ein Anfänger wie ich idealer und einfacher.
Da gibt es aber auch ein kleines Problem.
Gruß
Nibio
;

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

Kursor auf die erste leere Zelle in Excel springen


Schritt-für-Schritt-Anleitung

Um den Kursor in Excel zur nächsten leeren Zelle zu bewegen, kannst Du ein Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und das Arbeitsblatt, in dem Du arbeiten möchtest.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProjekt (DeinArbeitsblattName)“.
    • Wähle „Einfügen“ und dann „Modul“.
  4. Füge den folgenden Code ein:

    Sub SpringeZurErstenLeerenZelle()
       Dim LRow As Long
       Dim LCol As Long
    
       LCol = 1 ' Hier die Spalte angeben (1 für A, 2 für B, usw.)
       LRow = IIf(IsEmpty(Cells(Rows.Count, LCol)), Cells(Rows.Count, LCol).End(xlUp).Row, Cells(Rows.Count, LCol).Row)
       LRow = IIf(IsEmpty(Cells(LRow, LCol)), LRow, LRow + 1)
    
       Cells(LRow, LCol).Select
    End Sub
  5. Schließe den VBA-Editor.

  6. Führe das Makro aus: Drücke ALT + F8, wähle „SpringeZurErstenLeerenZelle“ und klicke auf „Ausführen“.

Jetzt springt der Kursor zur nächsten leeren Zelle in der angegebenen Spalte.


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Stelle sicher, dass der Code im richtigen Modul eingefügt wurde, und dass Du die richtigen Variablen und Datentypen verwendest.
  • Problem: Kursor springt nicht zur ersten leeren Zelle

    • Überprüfe, ob Du die korrekte Spalte im Code angegeben hast (z. B. LCol = 1 für Spalte A).
  • Hinweis: Kursor bleibt in der ersten Zeile

    • Wenn nur die Zelle R1 belegt ist, musst Du den Code anpassen, um zu prüfen, ob R1 leer ist oder nicht.

Alternative Methoden

  1. Excel-Tastenkombinationen:

    • Du kannst die STRG + Pfeil nach unten-Tastenkombination verwenden, um schnell zur letzten gefüllten Zelle in einer Spalte zu springen. Von dort kannst Du dann mit der Pfeiltaste zur nächsten leeren Zelle navigieren.
  2. Formeln nutzen:

    • Du kannst eine Formel in eine Zelle eingeben, um die nächste leere Zelle zu finden, aber dies ist nicht so direkt wie ein Makro.

Praktische Beispiele

Hier ist ein Beispiel, wie Du den Kursor in die erste leere Zelle in der Spalte R springen lassen kannst:

Sub SpringeZuErsterLeerenZelleInR()
    If Cells(Rows.Count, 18).End(xlUp).Row = 1 And Range("R1").Value = "" Then
        Range("R1").Select
    Else
        Range("R" & Cells(Rows.Count, 18).End(xlUp).Row + 1).Select
    End If
End Sub

Dieses Skript prüft zuerst, ob die Zelle R1 leer ist, und springt dann entweder zu R1 oder zur nächsten leeren Zelle in der Spalte R.


Tipps für Profis

  • Makros speichern: Wenn Du oft mit Makros arbeitest, speichere Deine Excel-Datei im „.xlsm“-Format, um die Makros zu behalten.
  • Fehlerbehebung: Verwende Debug.Print innerhalb Deines Makros, um Werte zu überprüfen und Fehler schneller zu identifizieren.
  • Benutzerdefinierte Tastenkombinationen: Du kannst auch benutzerdefinierte Tastenkombinationen für Deine Makros erstellen, um den Zugriff zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro in Excel ausführen? Um ein Makro auszuführen, drücke ALT + F8, wähle das gewünschte Makro aus und klicke auf „Ausführen“.

2. Was mache ich, wenn ich einen Fehler im Makro bekomme? Überprüfe den Code auf Syntaxfehler. Du kannst auch den Debugger verwenden, um Schritt für Schritt durch den Code zu gehen und den Fehler zu finden.

3. Wie kann ich die Spalte im Makro ändern? Ändere die Zahl in LCol = 1 auf die entsprechende Spaltennummer. Zum Beispiel ist Spalte B die 2, Spalte C die 3, usw.

4. Kann ich die Funktion an einen Button binden? Ja, Du kannst einen Button in Excel erstellen und das Makro mit diesem Button verknüpfen, um die Funktion auszuführen, wenn Du darauf klickst.

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