in die erste freie Zelle innerhalb eines bestimmten Bereichs in einer Spalte springen (Excel 2010)

...komplette Frage anzeigen Excel erste freie Zelle aktivieren unter Berücksichtung von Formatierung Werte - (Excel, Visual Basic, makro)

1 Antwort

Excel hängt nicht zwingend an den vorgegebenen Zeilen und Spalten. Du kannst eine eigene Matrix (Range/Bereich) definieren, indem du einer Range-Variable diese Matrix zuweist.

Dim rgBereich As Range

Set rgBereich = Range("A5:A20")

'Jetzt verwendest du diesen Bereich, um die erste freie Zelle zu suchen.
'Die erste Zelle in diesem Bereich ist A5. Sie wird mit Cells(1,1) angesprochen

rgBereich.Cells(1, 1).End(xlDown).Offset(1, 0).Select

Je nach Excel-Version wird der Set-Befehl gebraucht oder nicht. Du kannst es ja mal hinschreiben. Wenn VBA es nicht braucht, wird es der Code-Generator einfach verschwinden lassen.

DH!
Aber in WELCHER Version akzeptiert VBA denn das initialisieren einer Range OHNE "Set".
Das ist mir noch nicht untergekommen.

1
@Oubyi

Servus oubyi,

ich kenne die Excel-Versionen 2007 und 2010 nicht. Deshalb habe ich angenommen, dass die beiden möglicherweise etwas von der Objektorientierung von VB.NET mitbekommen hätten. Dort gibt es den Set-Befehl nicht mehr, weil sowieso alles ein Objekt ist.

Da ich es nicht wusste, habe ich einfach mal darauf hingewiesen. Aber danke für den Hinweis. Dann kann ich mir das zukünftig sparen :)

0

hi zusammen,

danke für den tip mit der definierten Matrix!!!

Nur schaut nochmals auf das Bild. Ich meine wie kann ich die erste freie zelle nach dem befüllten und formatieren Bereich aktivieren. Also der Cursor sollte bei beiden Aufgabenstellungen in den gelben Bereich springen.

Ich habe noch ein anderes Script, was in die letzte befüllte Zelle einer Spalte springt, aber dieses Script berücksichtigt nicht den Rahmen sprich die Formatierung einer Zelle und dieses Script springt nicht in die erste freie Zelle nach einem gefüllten oder formatierten Bereich.

Sub Spaltenende4() If IsEmpty(Cells(65536, ActiveCell.Column)) Then Cells(65536, ActiveCell.Column).End(xlUp).Select Else Cells(65536, ActiveCell.Column).Select End If End Sub

0
@fantastica1000

In diesem Fall bleibt dir nichts anderes übrig als innerhalb der definierten Range per Schleife nach dem Format zu suchen. Schau dir dazu die VBA-Hilfe zu FIND an. Da steht ein schönes Beispiel drin.

1

Was möchtest Du wissen?