Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Letzte Zeile ermitteln, aber wie?

Letzte Zeile ermitteln, aber wie?
22.02.2018 10:14:36
Burak
Moin,
ich versuche derzeit über den Barcode per Match die erste und letzte Zeile zu ermitteln, wo der Barcode steht.
Also wenn in A2, A3 und A4 1111 steht und in A5 dann 2222, dann soll er mir wenn ich Barcode 1111 eingebe, mir startzeile 2 und endzeile 4 ausgeben.
Die Startzeile funktioniert bei allen, aber die Endzeile macht das Problem.
Interessanterweise funktioniert das nur bei einem einzigen Barcode, der wie einige andere mittendrin ist: 4072
Bei einigen vorhandenen Barcodes gibt er als Endzeile die letzte Zeile der gesamten Liste aus und bei den beiden Barcodes 1190 und 2030 gibt es eine Fehlermeldung, weil er keine Endzeile findet ("Typen unverträglich").
Code
Sub Zeitdiagramm()
Dim linie As String, barcode As Integer, szeile, ezeile
linie = "R1"
barcode = Range("H8").Value
szeile = Application.Match(barcode, Worksheets(linie).Range("A:A"), 0)
ezeile = Application.Match(barcode, Worksheets(linie).Range("A:A"), 1)
MsgBox (szeile & " " & ezeile)
End Sub
Beispiel:
https://www.herber.de/bbs/user/119985.xlsm
Danke im Voraus und liebe Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile ermitteln, aber wie?
22.02.2018 10:54:32
Harry
Aus der Hilfe(https://msdn.microsoft.com/de-de/vba/excel-vba/articles/worksheetfunction-match-method-excel):
Ist Vergleichstyp gleich 1, gibt MATCH den größten Wert zurück, der kleiner gleich Suchkriterium ist. Die Elemente der Suchmatrix müssen in aufsteigender Reihenfolge angeordnet sein: ...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE.
Ist Vergleichstyp gleich 0, gibt MATCH den ersten Wert zurück, der identisch mit Suchkriterium ist. Die Elemente der Suchmatrix dürfen in beliebiger Reihenfolge angeordnet sein.
Ist Vergleichstyp gleich -1, gibt MATCH den kleinsten Wert zurück, der größer gleich Suchkriterium ist. Die Elemente der Suchmatrix müssen in absteigender Reihenfolge angeordnet sein: TRUE, FALSE, Z-A,...2, 1, 0, -1, -2,... usw.
D.h. Arg 1 und -1 nur bei sortierter Liste sinnvoll, bei dir aber bspw. 4303 am Anfang und am Ende der Liste vorhanden. Und Liste unsortiert.
Damit gleich als Frage: Soll die Routine das erste Auftreten des Codes und dann das letzte Auftreten (in der Liste) oder das letzte Auftreten (in einem Block) anzeigen?
Anzeige
AW: Letzte Zeile ermitteln, aber wie?
22.02.2018 11:00:35
Burak
Das erste und letzte Auftreten in einem Block.
Als Beispiel kann man da 4303 nehmen. Da soll die startzeile 2 und die Endzeile 62 sein, auch wenn ab Zeile 1775 wieder 4303 kommt.
AW: Letzte Zeile ermitteln, aber wie?
22.02.2018 11:42:19
Harry
Zellenweises Auslesen ist nicht unbedingt das schnellste, aber für den Anfang:
Sub Zeitdiagramm()
Dim linie As String, barcode As Integer, szeile, ezeile
Dim lastRowInList As Long
Dim rowHelper As Long
linie = "R1"
barcode = Range("H8").Value
lastRowInList = Worksheets(linie).Range(Worksheets(linie).Range("A1").End(xlDown), Worksheets( _
linie).Range("A65536").End(xlUp)).Row
szeile = Application.Match(barcode, Worksheets(linie).Range("A1:A" & lastRowInList), 0)
ezeile = szeile
For rowHelper = ezeile + 1 To lastRowInList
If Worksheets(linie).Cells(rowHelper, 1) = barcode Then
ezeile = rowHelper
Else
Exit For
End If
Next
MsgBox (szeile & " " & ezeile)
End Sub
lastRowInList ist die ermittelte letzte benutzte Zeile in Spalte A, hier quasi nur als Helper, um den Suchbereich zu verkleinern
Anzeige
AW: Letzte Zeile ermitteln, aber wie?
22.02.2018 11:48:22
Burak
Ja funktioniert einwandfrei. Da es maximal 1000 Zeilen sind, funktioniert das Makro in unter 1 Sekunde. Reicht also aus. VIELEN DANK :****

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige