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

Doppelter Wert "neusten" VBA (.Find)

Doppelter Wert "neusten" VBA (.Find)
30.08.2022 11:53:29
Herbert
Moin moin Leute,
ich habe eine Excelmappe,
in der ich den neusten Eintrag eines Artikels ansprechen möchte,
finden tue ich diesen über die .FIND()-Methode.
Die Artikelnummern stehen in der Spalte 7 - 12,
um zu prüfen welcher neuer / älter ist,
sind in Spalte 21 Dateneinträge,
wenn diese nicht da sind, sind in Spalte 6 zu 100% welche.
(Datum = Einzahl | Daten = Mehrzahl)
Das Datum aus Spalte 21 stellt das Rückführungsdatum dar,
das Datum aus Spalte 6 stell das Abholdatum dar.
Das ganze soll aber relativ variabel gehalten werden,
in dem man auch den älteren Eintrag anzeigen lassen kann.
Mit den 4 Knöpfen in der unteren rechten Ecke bei der "uf_Deha-Gehaenge"
BSP-Datei: https://www.herber.de/bbs/user/154853.xlsm
Ich bin jedem für seine Hilfe dankbar!
MfG
Herbert

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelter Wert "neusten" VBA (.Find)
30.08.2022 11:59:31
Daniel
Hi
.Find findet mit den normalen Einstellungen immer den ersten Eintrag, wenn es mehrere gibt.
brauchst du also den jüngsten Eintrag, musst du die Liste absteigend sortieren, so dass der jüngste Eintrag oben steht.
verwendest du lieber die aufsteigende Sortierung und der jüngste Eintrag steht unten, kannst du bei .Find mit dem Parameter SearchDirection:=xlNext die Suchrichtung umdrehen, so dass der unterste Eintrag gefunden wird (sollte der parameter AFTER:= gesetzt sein, so ist diese Zelle der Ausgangspunkt der Suche)
Gruß Daniel
AW: Doppelter Wert "neusten" VBA (.Find)
30.08.2022 12:14:13
Herbert
Moin Daniel,
mein Problem hatte ich gerade gelöst,
wobei mir für die anderen Button wieder eine Frage im Kopf aufkam,
aber die hast du direkt gelöst.

Code für den Button Nächster Enitrag:


Private Sub cmdbtn_next_Ein_Click()
Dim a As Range, c As Integer
With Worksheets("Datenbank")
Set a = .Range("tbl_Lieferschein[1-1,3 to.]:tbl_Lieferschein[32 to.]").Find(what:=txtbx_Nummer.Value, LookAt:=xlPart / xlWhole)
If a Is Nothing Then
MsgBox "Das von Ihnen gesuchte DEHA-Gehänge" & _
vbCrLf & "ist nicht in der Matrix zu finden," & _
vbCrLf & "bitte überprüfe einmal Manuel!" & _
vbCrLf & _
vbCrLf & "Um direkt auf das Tabellenblatt zukommen," & _
vbCrLf & "Den Button -> WEITER !"
Exit Sub
End If
Set a = .Range("tbl_Lieferschein[1-1,3 to.]:tbl_Lieferschein[32 to.]").FindNext(a)
c = a.Column
If .Cells(a.Row, 18).Value  "" And .Cells(a.Row, 19).Value = "Ja" And .Cells(a.Row, 20).Value = "Ja" Then
txtbx_Standort.Value = "Auf Baustelle verblieben!"
ElseIf .Cells(a.Row, 18).Value  "" And .Cells(a.Row, 19).Value = "Ja" Then
txtbx_Standort.Value = "Bei KLEIHUES im Werk!"
Else
txtbx_Standort.Value = "Bei uns in benutzung!"
End If
txtbx_Laststufe.Value = Worksheets("Datenbank").Cells(1, c).Value
txtbx_Lieferschein_Nummer.Value = Worksheets("Datenbank").Cells(a.Row, 1).Value
If .Cells(a.Row, 21).Value  "" Then
txtbx_Stand.Value = .Cells(a.Row, 21).Value
Else
txtbx_Stand.Value = .Cells(a.Row, 6).Value
End If
End With
Exit Sub
'Die Abfrage welcher Wert ausgegeben werden soll, anhand einer weiteren Bedingung festmachen (Datum des Lieferscheins)
End Sub
Mit der Erläuterung der Next und After Parameter hattest du mir dann direkt alle anderen Button abgedeckt! :D
Ich danke dir vielmals! ^^
MfG
Herbert

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige