Erste freie Zelle nach Spalte ň

Die Aufgabe

In einer vorgegebenen Zeile soll nach einen definierten Spalte die erste leere Zelle gefunden werden.

Als Beispiel verwende ich hier die Forderung, dass im aktuellen Arbeitsblatt in Zeile 10 die erste freie Spalte nach der Spalte H gefunden werden soll. Der Demonstration wegen gebe ich hier eine MessageBox aus, zusätzlich schreibe ich in die erste freie Zelle der definierten Spalte einen vorgegebenen Wert.

Der Code

Der Code ist so geschrieben, dass er in das Modul des Tabellenblattes eingefügt werden muss, wo das Programm auch ausgeführt werden 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 obigen Code bekommen Sie hier als *.txt oder auch als *.cls zum downloaden. Beide Files sind als *.zip gepackt. Die *.cls wird den Sourcecode automatisch in das Modul der Tabelle1 importieren.

▲ nach oben …

Dieser Beitrag wurde unter Code-Schnipsel, Mit VBA/Makro, Tabelle und Zelle abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.