Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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

.Find nächsten Eintrag

.Find nächsten Eintrag
07.01.2021 13:46:32
Tim
Hallo zusammen,
ich habe eine Userform mit einer Textbox, deren Inhalt in der Tabelle gesucht werden soll. Die Ergebnisse dazu soll er mir in einer Listbox ausgeben, das funktioniert soweit.
Ich möchte zu dem Suchkriterium aus der Textbox, ein weiteres Kriterium prüfen. Heißt, ich möchte alle Ergebnisse ausgeben haben, die in Spalte "N" keinen Eintrag haben (leer sind), wie erreiche ich das?

Private Sub EAN_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim  sheet As Worksheet
Dim rngCell As Range
Dim strFirstAddress As String
Set sheet = Thisworkbook.Worksheets("Ergebnis")
If KeyCode = 13 Then
If EAN.Value  "" Then
With sheet.Range("H:H")
UserForm5.Übersicht.Clear
Set rngCell = .Find(UserForm5.EAN.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngCell Is Nothing And rngCell.Offset(0, 7) = "" Then
strFirstAddress = rngCell.Address
Do
With UserForm5.Übersicht
.AddItem
.List(.ListCount - 1, 0) = rngCell.Row
.List(.ListCount - 1, 1) = rngCell.Offset(0, -6).Value
.List(.ListCount - 1, 2) = rngCell.Offset(0, -1).Value
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
Else
End If
End With
End If
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .Find nächsten Eintrag
07.01.2021 14:00:54
Werner
Hallo,
mit Offset(0, 7) prüfst du aber nicht Spalte N auf leer sondern Spalte O, ausgehend von Spalte H hätte Spalte N den Offset(0, 6).
Gruß Werner
AW: .Find nächsten Eintrag
07.01.2021 14:09:49
Matthias
Moin!
Ich hätte deinen Code so umgebaut. DAbei beachten. Die Spalte N hat einen Offset von 6 zu H. Ansonsten die Prüfung auf leer in die Schleife rein, wenn du die Treffer durchgehst.
Private Sub EAN_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim sheet As Worksheet
Dim rngCell As Range
Dim strFirstAddress As String
Set sheet = ThisWorkbook.Worksheets("Ergebnis")
If KeyCode = 13 Then
If EAN.Value  "" Then
With sheet.Range("H:H")
UserForm5.übersicht.Clear
Set rngCell = .Find(UserForm5.EAN.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
If rngCell.Offset(0, 6) = "" Then
With UserForm5.übersicht
.AddItem
.List(.ListCount - 1, 0) = rngCell.Row
.List(.ListCount - 1, 1) = rngCell.Offset(0, -6).Value
.List(.ListCount - 1, 2) = rngCell.Offset(0, -1).Value
End With
End If
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
Else
End If
End With
End If
End If
End Sub

VG
Anzeige
AW: .Find nächsten Eintrag
07.01.2021 14:19:23
Tim
Besten Dank, es funktioniert wie gewünscht!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige