Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Letzte Zeile finden und Bereich davor prüen
09.06.2016 15:03:30
VbKey
Hallo
Ich benötige eure Hilfe.
Ich habe eine Tabelle in der in Zeile B Serie Nummern eingetragen werden. Nach dem Eintrag soll der eingetragene Wert in einem Bereich von 160 Zellen (entspricht einer Sendung) davor auf Duplikate geprüft werden. Falls die Serie Nummer bereits vorhanden ist sollte der Eintrag wieder gelöscht werden und eine Userform geöffnet werden.
Hier meinen aktuelle Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer, iRowL As Integer
iRowL = Cells(Cells.Rows.Count, 2).End(xlUp).Row
For iRow = iRowL To 1 Step -1
If WorksheetFunction.CountIf(Columns(2), Cells(iRow, 2)) > 1 Then
Rows(iRow).Delete
Unload ScanUserform
DoppelUserForm.Show
End If
Next iRow
End Sub
Hiermit wird leider die komplette Liste auf Duplikate geprüft. Wie muss ich nun den Code abändern, dass jeweils nur die 160 vorgängigen Zellen geprüft werden?
Danke für eure Tipps bereits jetzt.
Gruss

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

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile finden und Bereich davor prüen
09.06.2016 15:10:57
baschti007
So würde ich sagen
von
iRowL = Cells(Cells.Rows.Count, 2).End(xlUp).Row
zu
iRowL = 160
Gruß Basti

AW: Letzte Zeile finden und Bereich davor prüen
09.06.2016 15:26:52
VbKey
Hallo Basti
Danke für deine schnelle Antwort und Hilfestellung.
Habe den Code ausprobiert. Leider werden somit nur immer die ersten 160 Einträge auf Duplikate geprüft. Es sollte aber immer vom aktuellen Eintrag die vorgängigen 160 Einträge auf Duplikate geprüft werden, nicht immer die ersten 160 Einträge.
Die Liste kann bis zu 50'000 Einträge enthalten.
Danke

AW: Letzte Zeile finden und Bereich davor prüen
09.06.2016 15:23:18
UweD
Hallo
so...
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
If Target.Column = 2 Then
Dim Von As Integer
Von = WorksheetFunction.Max(1, Target.Row - 160) 'Wenn Zeile kleiner 160, dann nur bis  _
zu Zeile 1
If WorksheetFunction.CountIf(Range(Cells(Von, 2), Cells(Target.Row - 1, 2)), Target) >  _
0 Then
MsgBox "Doppelt"
'Unload ScanUserform
'DoppelUserForm.Show
Application.EnableEvents = False
Target.ClearContents
End If
End If
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = True
End Sub

Gruß UweD

Anzeige
AW: Letzte Zeile finden und Bereich davor prüen
09.06.2016 15:43:09
VbKey
Hallo UweD
Danke dir vielmals. Genau sowas habe ich gesucht.
Gruss

AW: gern geschehen owt
09.06.2016 15:52:14
UweD

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige