Erste freie Zelle nach Spalte ň

Die Aufgabe

In ein­er vorgegebe­nen Zeile soll nach einen definierten Spalte die erste leere Zelle gefun­den wer­den.

Als Beispiel ver­wende ich hier die Forderung, dass im aktuellen Arbeits­blatt in Zeile 10 die erste freie Spalte nach der Spalte H gefun­den wer­den soll. Der Demon­stra­tion wegen gebe ich hier eine Mes­sage­Box aus, zusät­zlich schreibe ich in die erste freie Zelle der definierten Spalte einen vorgegebe­nen Wert.

Der Code

Der Code ist so geschrieben, dass er in das Mod­ul des Tabel­len­blattes einge­fügt wer­den muss, wo das Pro­gramm auch aus­ge­führt wer­den soll.

Option Explicit

Sub FirstFreeCol()
   Dim rngBereich As Range
   Dim c As Range
   Dim intNachSpalte As Integer
   Dim lngZeile As Long
   Dim vntWert As Variant
   Dim strErsteFreieSpalte As String

   On Error GoTo ErrorHandler
   lngZeile = 10   ' Anpassen
   intNachSpalte = 8 ' Anpassen, entspricht Spalte_H
   vntWert = 123.456 &nbsp> ' Punkt als Dezimaltrenner!
   Set rngBereich = Range(Cells(lngZeile, intNachSpalte), _
    Cells(lngZeile, Columns.Count))
   For Each c In rngBereich
      If c.Value = "" Or IsEmpty(c) Then Exit For
   Next c
   MsgBox "Erste freie Spalte = " & c.Column

   ' Alternativen für die Spalte als Buchstabe
   strErsteFreieSpalte = Replace(c.Address(0, 0), "1", "")
   MsgBox "(1) Erste freie Spalte = " & Chr(34) & " " & _
    Left(strErsteFreieSpalte, Len(strErsteFreieSpalte) - 1)

   ' Oder die 2. Möglichkeit:
   strErsteFreieSpalte = WorksheetFunction.Substitute(c.Address(0, 0), 1, "")
   MsgBox "(2) Erste freie Spalte = " & Chr(34) & " " & _
    Left(strErsteFreieSpalte, Len(strErsteFreieSpalte) - 1) & " " & Chr(34)
   Cells(lngZeile, c.Column) = vntWert

ErrorHandler:
   If Err.Number <> 0 Then
      MsgBox "Fehler Nr. " & Err.Number & vbCrLf _
       & Err.Description, vbOKOnly + vbCritical, _
      "Fehler, schade…"
   End If
   Set rngBereich = Nothing
End Sub

Code4Import

Den obi­gen Code bekom­men Sie hier als *.txt oder auch als *.cls zum down­load­en. Bei­de Files sind als *.zip gepackt. Die *.cls wird den Source­code automa­tisch in das Mod­ul der Tabelle1 importieren.

[NachOben­Let­zte Verweis=„CodeSchnipsel: Erste freie Zelle”]
Dieser Beitrag wurde unter Code-Schnipsel, Mit VBA/Makro, Tabelle und Zelle abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.