Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Häufige Fragen

Erste freie Zelle von rechts in einer Zeile

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --
Eine Function um dies zu ermitteln
Wichtiger Hinweis:
Im Bereich dürfen keine ausgeblendeten Spalten sein, dies könnte zu einer fehlerhaften Zellermittlung führen.

Ergänzend:

Dies ist für die Ermittlung im "freien" Raum.
D.h., man hat keinen zusammenhängenden Bereich, den man überprüfen kann.
Arbeitet man, wie es sein sollte, mit intakten Listen, so ist eine Überprüfung mit CurrentRegion absolut vorzuziehen.
Ich habe dies und den Hinweis auf ausgeblendet ergänzt, weil mir klar wurde, dass die Problematik des Ausgeblendeten nicht jedem Anwender bewusst ist.

Die 3 im Aufruf müssen Sie natürlich durch Ihre gewüschte Zeile ersetzen:
 
Public Sub Teste_EFSVRIZ()
 MsgBox EFSVRIZ(ActiveSheet, 3)
End Sub
 
Public Function EFSVRIZ(ByVal DasTabBlatt As Worksheet, _
ByVal DieZeile As Long) As Long
 'Keine ausgeblendeten Spalten im Bereich
 'Weiterverwendung auf eingene Gefahr
 ' *** Erste Freie Spalte von Rechts in einer Zeile ***
 'Gibt die erste Freie Spalte von rechts  zurück.
 'ist die Letzte Spalte belegt so wird - 1 zurückgegeben bei einem Fehler -2
 Dim i As Long
 On Error GoTo Fehler
 With DasTabBlatt
  If IsEmpty(.Cells(DieZeile, .Columns.Count)) Then
   i = .Cells(DieZeile, .Columns.Count).End(xlToLeft).Column
   If i = 1 Then
    EFSVRIZ = IIf(IsEmpty(.Cells(DieZeile, i)), 1, 2)
   Else
    EFSVRIZ = i + 1
   End If
  Else
   EFSVRIZ = -1
  End If
 End With
 Exit Function
 Fehler:
 EFSVRIZ = -2
End Function

Weitere Artikel der Gruppe: Häufige Fragen Aus Excel VBA
Nach oben