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

per Makro zur nächsten freien Zelle springen

Forumthread: per Makro zur nächsten freien Zelle springen

per Makro zur nächsten freien Zelle springen
21.10.2007 23:33:37
KiaOra
Hi Ihr,
würde gerne per Makro zur jeweils nächsten freien Zelle in Spalte B springen... ;-)
Hat jemand von Euch ne Idee, wie das geht ?
Zellen in Spalte B enthalten nur "K", "H", "FH", "E" oder nichts und werden per Drop-Down befüllt (= Gültigkeit - Liste).
Vielen Dank für jeden Tipp !
VG u. machts gut,
Micha

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Makro zur nächsten freien Zelle springen
22.10.2007 06:57:32
Luschi
Hallo Micha,
so sollte es funktionieren:

Sub ersteFreieZelle_B()
Dim rg1 As Range, rg2 As Range
On Error GoTo E_n_d_e
Set rg1 = ActiveSheet.Range("B:B").SpecialCells(xlCellTypeBlanks)
If Not rg1 Is Nothing Then
''merkwürdigerweise funktioniert hier nicht: _
rg1.Offset(0, 0)  und rg1.Resize(1, 1) erzeugt 1 Fehler
For Each rg2 In rg1
rg2.Select
Exit For
Next rg2
End If
E_n_d_e:
Set rg1 = Nothing
Set rg2 = Nothing
End Sub>Gruß von Luschi
aus klein-Paris

Anzeige
AW: per Makro zur nächsten freien Zelle springen
22.10.2007 19:16:00
KiaOra
Hi Luschi,
genial - läuft perfekt ! :-)
Vielen Dank für die schnelle Hilfe !
Kannst Du mir auch sagen, was ich ergänzen muss, wenn die Maus nach suchen des freien Feldes in Spalte B in Spalte A der jeweiligen Zeile springen soll? ;-)
VG und einen schönen Abend,
Micha

Anzeige
AW: per Makro zur nächsten freien Zelle springen
22.10.2007 19:47:00
Luschi
Hallo Micha,
schreibe statt rg2.Select dies hier: rg2.Offset(0, -1).Select
und bedeutet: gleiche Zeile aber 1 Spalte weiter links
Gruß von Luschi
aus klein-Paris

AW: per Makro zur nächsten freien Zelle springen
22.10.2007 23:37:22
KiaOra
Hi Luschi,
und nochmal perfekt - läuft super ! :-)
VG u. vielen herzlichen Dank,
Micha
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Mit Makros zur nächsten freien Zelle in Excel springen


Schritt-für-Schritt-Anleitung

Um per Makro zur jeweils nächsten freien Zelle in Spalte B zu springen, kannst du das folgende VBA-Skript verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub ersteFreieZelle_B()
    Dim rg1 As Range, rg2 As Range
    On Error GoTo E_n_d_e
    Set rg1 = ActiveSheet.Range("B:B").SpecialCells(xlCellTypeBlanks)
    If Not rg1 Is Nothing Then
        For Each rg2 In rg1
            rg2.Select
            Exit For
        Next rg2
    End If
E_n_d_e:
    Set rg1 = Nothing
    Set rg2 = Nothing
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, um zur nächsten freien Zelle in Spalte B zu springen.

Wenn du möchtest, dass der Cursor nach dem Finden der freien Zelle in Spalte A der jeweiligen Zeile springt, ändere die Zeile rg2.Select zu rg2.Offset(0, -1).Select.


Häufige Fehler und Lösungen

  • Fehler: "Keine freien Zellen gefunden"

    • Lösung: Stelle sicher, dass in Spalte B tatsächlich leere Zellen vorhanden sind. Überprüfe auch, ob Filter aktiv sind, die die Sichtbarkeit der Zellen beeinflussen könnten.
  • Fehler: "Laufzeitfehler"

    • Lösung: Dieser Fehler kann auftreten, wenn keine leeren Zellen vorhanden sind. Füge eine Fehlerbehandlungsroutine (wie im Beispiel gezeigt) hinzu, um diesen Fehler abzufangen.

Alternative Methoden

Eine alternative Möglichkeit, um zur nächsten freien Zelle zu gelangen, ist die Verwendung der Find-Methode. Hier ist ein Beispiel:

Sub naechsteFreieZelle()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Blattname anpassen
    Dim freieZelle As Range
    Set freieZelle = ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0)
    If freieZelle.Row <= ws.Rows.Count Then
        freieZelle.Select
    End If
End Sub

Praktische Beispiele

Angenommen, du hast eine Excel-Tabelle, in der du Daten in Spalte B eingibst, und du möchtest schnell zur nächsten freien Zelle springen. Du kannst das oben genannte Makro verwenden, um die Eingabe effizienter zu gestalten.

Wenn du den Cursor nach der Auswahl der freien Zelle in Spalte A verschieben möchtest, verwende die angepasste Zeile:

rg2.Offset(0, -1).Select

Tipps für Profis

  • Makros speichern: Stelle sicher, dass du deine Excel-Datei im .xlsm-Format speicherst, um die Makros zu behalten.
  • Tastenkombinationen: Du kannst Makros auch mit Tastenkombinationen verknüpfen, um den Zugriff zu beschleunigen.
  • Debugging: Nutze die Debugging-Funktion im VBA-Editor, um Probleme in deinem Code zu identifizieren und zu beheben.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um eine andere Spalte zu verwenden?
Du kannst die Spalte in der Range("B:B")-Anweisung ändern, um eine andere Spalte zu durchsuchen.

2. Was mache ich, wenn das Makro nicht funktioniert?
Überprüfe, ob Makros in deinen Excel-Einstellungen aktiviert sind, und stelle sicher, dass es keine Filter gibt, die die Sichtbarkeit von Zellen einschränken.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige