letzte Zeile ermitteln

deen_90

Erfahrenes Mitglied
Hallo

Ich hab da mal wieder ein Problem mit VBA. Ich möchte gerne in einem Sheet die letzte beschriebene Zeile ermitteln und wenn in einer bestimmten Spalte dieser Zeile ein Ausdruck steht dann sollte eine MsgBox angezeigt werden.
Weiss jemand wie ich das machen kann?
 
folgendes sollte funktionieren (in der Annahme das du Excel meinst ;) ):
Code:
Sub lastEntry()
    Dim i As Long           ' einfache Zählvariable
    Dim spalte As String    ' gesuchte Spalte
    Dim lastRow As Integer  ' letze Zeile mit Inhalt
    
    spalte = "A"
    
    ' Schleifenüberprüfung
    i = 0
    Do
        i = i + 1
    Loop While Range("A" & i) <> "" And i < 65536
    lastRow = i - 1
    
    'Ausgabe der Zeile
    MsgBox ("Zeile: " & lastRow & Chr$(13) & Chr$(10) & "Inhalt: " & Range(spalte & lastRow))
    
End Sub
 
ich habs jez so gelöst:

Code:
Sheets("webshop_inv_chind").Select

lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
If ActiveSheet.Cells(lastRow, 9).Value = "New RFS" Then MsgBox "Neuer 'New RFS' eintrag"

aber irgendwie will die MsgBox nicht kommen obwohl der letzte Eintrag ein 'New RFS' ist.....
 
Hallo...

Schreib mal folgendes hin um zu sehen was da genau steht...
Visual Basic:
'### If ActiveSheet.Cells(lastRow, 9).Value = "New RFS" Then MsgBox "Neuer 'New RFS' eintrag"
MsgBox "[" & ActiveSheet.Cells(lastRow, 9).Value & "]"

danach den Wert anpassen und müsste gehen...

lg Tody
 
du musst alle spalten durchlaufen, mit der if bedingung schaust du nur in spalte 9.
dafür könntest du meine do schleife verwenden. aufpassen musst du allerdings weil bei den spalten bei 256 schluss ist
mfg.
 
entweder der wert steht in spalte 9 (="i") oder du läufst alle spalten durch:
Code:
    lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Dim i As Integer
    i = 0
    Do
        i = i + 1
    Loop While ActiveSheet.Cells(lastRow, i).Value <> "New RFS" And i < 255
    
    If ActiveSheet.Cells(lastRow, i).Value = "New RFS" Then MsgBox "Neuer 'New RFS' eintrag"
 
Folgender Maßen sieht bei mir der Excel Sheet aus:
Code:
+-+---A---+---B---+---C---+---D---+
| |       |       |       |       |
|1|  aaa  +       +       +       +
| |       |       |       |       |
+-+---A---+-------+-------+-------+
| |       |       |       |       |
|2|  bbb  +       +       +       +
| |       |       |       |       |
+-+-------+-------+-------+-------+
| |       |       |       |       |
|3|  ccc  +       +       +       +
| |       |       |       |       |
+-+-------+-------+-------+-------+
| |       |       |       |       |
|4|  ddd  +       +       +New RFS+
| |       |       |       |       |
+-+-------+-------+-------+-------+
Falls ich deine Vorgabe falsch verstanden habe gib einmal kurz ein Beispiel wie die Zellen aufgeteilt sind
 
Wenn ich das so mache:

Code:
lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

If ActiveSheet.Cells(lastRow, 9).Value <> "New RFS" Then MsgBox lastRow

dann wird die ganz letzte Zeile angegeben und das ist: 22036 und in dieser Zeile steht überhaupt nichts.
Ich weiss jetzt nicht ob ich vielleicht einfach überprüfen soll welche die letzte Zeile ist die beschrieben ist und dann schauen ob es 'New RFS' ist, aber leider weiss ich au nicht wie das geht.....kannst du mir vielleicht da weiter helfen?
 

Neue Beiträge

Zurück