Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Die Updates sind abgeschlossen. Bitte meldet eventuelle Bugs und Auffälligkeiten im entsprechenden Forum.
Sollte das Loginfenster nicht sichtbar sein, ist es unten links. Entweder Ihr loggt Euch dort ein oder löscht den Browsercache und versucht es noch einmal.


Funktionsaufruf in Sub
#1
Code:
Public Function LastRow(wks As Worksheet) As Long
   Dim lngFirst As Long, lngLast As Long, lngTmp As Long

   With Application
       If .CountA(wks.Cells) = 0 Then Exit Function
       If .CountA(wks.Rows(wks.Rows.Count)) Then
           LastRow = wks.Rows.Count: Exit Function
       End If
       lngLast = wks.Rows.Count
       Do While lngLast > lngFirst + 1
           lngTmp = (lngFirst + lngLast) \ 2
           If .CountA(wks.Rows(lngTmp).Resize(lngLast - lngTmp)) Then _
              lngFirst = lngTmp Else lngLast = lngTmp
       Loop
       If .CountA(wks.Rows(lngLast)) Then LastRow = lngLast Else LastRow = lngFirst
   End With
End Function

Hallo!
Ich würde gern in einem Sub die oben angegebene Funktion öffnen, um die letzte beschriebene Zeile in der Tabelle zu finden.
Dazu müsste die Funktion die Nummer der letzten beschriebenen Zeile zurückgeben und die Funktion müsste aufgerufen werden.
Leider bekomme ich bei folgendem Code im Sub eine Fehlermeldung:
Code:
Public Sub CommandButton1_Click()

Dim LRow As Long

   
   LRow = LastRow()
   
   Tabelle1.Cells(LastRow, 3) = TextBox1.Text
   Tabelle1.Cells(LastRow, 8) = TextBox2.Text
   
   
End Sub
Antwortento top
#2
Hi,

Deine Funktion erwartet immer einen Parameter, den gibst Du aber nicht mit.

Einmal googeln bringt das:

http://www.excel-inside.de/vba-loesungen...-ermitteln
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antwortento top
#3
Richtig, aber welchen Parameter erwartet die Funktion? Das konnte ich aus dem Kopf nicht ablesen.

Die anderen Lösungen, um die letzte Zeile zu ermitteln habe ich bereits getestet. Leider finden diese immer das zuletzt veränderte Feld, also auch Formatänderungen, welches für meine Anwendung die falschen Ergebnisse liefert.
Antwortento top
#4
Hallo Heinz,

die Funktion erwartet ein Worksheet. Das steht doch im Parameter der Funktion drin.

Code:
Public Function LastRow(wks As Worksheet) As Long

Die Übergabe geht so

Code:
Public Sub CommandButton1_Click()

Dim LRow As Long

  
   LRow = LastRow(Tabelle1)
  
   Tabelle1.Cells(LastRow, 3) = TextBox1.Text
   Tabelle1.Cells(LastRow, 8) = TextBox2.Text
  
  
End Sub
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
  • Heinz
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste