ich benötige wieder einmal eure Hilfe :) Ich möchte mich bei dieser Gelegenheit auch noch einmal bei allen für die tolle Unterstützung bedanken! Dieses Forum ist wirklich super!
Zu meinem Vorhaben:
Ich habe einen Listenbereich mit dem Namen "tblProjekte". Dort möchte ich in der Spalte "Name" nach einem bestimmten Eintrag (im Beispiel: "Projekt B") suchen und die Zeilennummer der untersten Zelle, die diesen Eintrag enthält, zurückgeben. (Damit ich in einem Makro eine neue Zeile unter diesem Eintrag anlegen kann. Erforderlich für weitere Bearbeitung des Projektes)
Zu meinem Problem:
Es gibt mehrere Einträge die "Projekt B" heißen. Also die Variable nach der ich suche taucht in mehreren Zeilen innerhalb der durchsuchten Spalte auf.
Mein derzeitiger Code läuft nur bis er den ersten Eintrag findet und bricht dann ab. Ergo kriege ich die Zeilennummer des ersten (obersten) Listen-Eintrages das meinem Suchwert entspricht und nicht wie gewünscht die Zeilennummer des letzten (untersten) Listen-Eintrages das meinem Suchwert entspricht.
Wie kann ich mein Code verändern, damit er die Zeilennummer des untersten Eintrages liefert?
Mein derzeitiger Code:
Function GetRowNumber(lstObjName As String, tblHeader As String, SearchVar As String) As _
Integer
Dim lstObj As ListObject
Dim Output As Variant
Set listObj = ActiveSheet.ListObjects(lstObjName)
GetRowNumber = listObj.ListColumns(tblHeader).DataBodyRange.Cells.Find(What:=SearchVar).Row
End Function
Bei meiner derzeitigen Tabelle sind die Eintrage E8:E10 alle = "Projekt B".
Nachdem ich den obigen Code ausführe, sprich:
Sub TestAusgabe()
MsgBox GetRowNumber("tblProjekte", "Name", "Projekt B")
End Sub
kriege ich "8" zurück. Ich möchte aber "10". Also die Zeilennummer des untersten Eintrages.
MfG,