AW: 5 Spalten nach leerer zelle suchen.
23.04.2008 17:06:00
Rudi
Hallo,
im Modul der UF:
Private Sub CommandButton1_Click()
Dim lngRow As Long
lngRow = LastUsedRowInRange(Sheets("Daten"), , , 1, 5) + 1
With Sheets("daten")
.Cells(lngRow, 1) = TextBox1
.Cells(lngRow, 2) = TextBox2
.Cells(lngRow, 3) = TextBox3
.Cells(lngRow, 4) = TextBox4
.Cells(lngRow, 5) = TextBox5
End With
End Sub
'in ein Modul:
Function LastUsedRowInRange( _
wks As Worksheet, _
Optional lngFirstRow&, _
Optional lngLastRow&, _
Optional lngFirstColumn&, _
Optional lngLastColumn&) _
As Long
'Letzte Zeile mit Inhalt in einem Bereich
'Parameter
'wks: das Blatt
'lngFirstRow&: die erste Zeile
'lngLastRow&: die letzte Zeile
'lngFirstColumn&: die erste Spalte, A=1, B=2 etc.
'lngLastColumn&; die letzte Spalte
Dim lngTmp&, blnFound As Boolean
If lngFirstRow = 0 Then lngFirstRow = 1
If lngLastRow = 0 Then lngLastRow = Rows.Count
If lngFirstColumn = 0 Then lngFirstColumn = 1
If lngLastColumn = 0 Then lngLastColumn = Columns.Count
With wks
If Application.CountA(.Range(.Cells(lngLastRow, lngFirstColumn), .Cells(lngLastRow, _
lngLastColumn))) Then
LastUsedRowInRange = .Rows.Count: Exit Function
End If
If Application.CountA(.Range(.Cells(lngFirstRow, lngFirstColumn), .Cells(lngLastRow, _
lngLastColumn))) = 0 Then
LastUsedRowInRange = 0: Exit Function
End If
lngTmp = (lngFirstRow + lngLastRow) / 2
If lngLastRow > lngFirstRow + 1 Then
If Application.CountA(.Range(.Cells(lngTmp, lngFirstColumn), .Cells(lngLastRow, _
lngLastColumn))) Then
lngFirstRow = lngTmp
blnFound = True
End If
If Not blnFound And _
Application.CountA(.Range(.Cells(lngFirstRow, lngFirstColumn), .Cells(lngTmp, _
lngLastColumn))) Then
lngLastRow = lngTmp
End If
LastUsedRowInRange wks, lngFirstRow, lngLastRow, lngFirstColumn, lngLastColumn
End If
End With
LastUsedRowInRange = lngFirstRow
End Function
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe