Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Suchen/Finden eines Wertes

Suchen/Finden eines Wertes
20.12.2023 13:25:54
Zwerg
Hallo zusammen,

ich versuche mich gerade an der VBA programmierung, dabei habe ich folgendes Probelm:
Ich möchte aus einer Tabelle den Wert auslesen der meinem Wunschwert am nächsten kommt.
Das Probelm ist wenn ich z.B als Wunschwert "1" eintrage, dann sucht er micht exakt diesen, sondern gibt mir auch alle anderen Zahle die die Ziffer enthalten an (z.B. 10 ,21 ,31 usw.). Wenn ich die Bedingung LookAt (XlLookAt).= xlWhole benutze findet er gar keine Werte mehr.
Was mache ich falsch?

Vielen Dank

Hier mein Code:

Private Sub zusammen_Click()


'Letze beschriebene Zeile ermitteln
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, "F").End(xlUp).Offset(1, 0).Row
loLetzte = loLetzte - 1
'MsgBox "Die Tabelle endet in Zeile " & loLetzte


'nächstliegende Zahl finden
Dim Numbers
Dim item
Dim closestValue As Double
Dim diff As Double
Dim minDiff As Double
minDiff = 0.5

Numbers = Range("F5:F" & loLetzte)

For Each item In Numbers
diff = Abs(item - Range("I17"))
If diff minDiff Then
minDiff = diff
closestValue = item
End If
Next item
'MsgBox "The closest value: " & closestValue


'erste Zeile in der der Suchbegriff enthalten ist
Dim Rng_1 As Range
Set Rng_1 = ActiveSheet.Range("F5:F" & loLetzte).Find(what:=closestValue)
If Rng_1 Is Nothing Then
MsgBox "Nichts gefunden"
Exit Sub
End If
MsgBox "Zeile: " & Rng_1.Row & "; Adresse: " & Rng_1.Address

'ermittelte Zeile in Tabelle schreiben
Range("J6").value = Rng_1.Row
End Sub


Hier meine Beispiel Datei:
https://www.herber.de/bbs/user/165407.xlsm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Suchen/Finden eines Wertes
20.12.2023 15:27:29
Piet
Hallo

du hast meines Erachtens deine eigene Aufgabe nicht zu Ende durchdacht!?
Die Lösung ist doch schon in der For Next Schleife bei diff minDiff vorhanden!
Setze dir unter diesen Befehl einfach noch eine Variable - closestValue = item
closestAdress = item.Address - dann kannst du auf den Suchlauf verzichten!

mfg Piet
Anzeige
AW: Suchen/Finden eines Wertes
21.12.2023 07:13:03
Zwerg
Hallo Piet,

danke für deine Antwort. Du hast natürlich vollkommen recht.
Leider funktioniert es es nicht wenn ich eine Zeile mit

closestAdress = item.Address

einfüge.
Habe ich die Variablen falsch deklariert?Oder woran kann es liegen?

Entschuldige, ich habe gestern das erste mal mit VBA gearbeitet und es ist absolutes Neuland für mich.

Viele Grüsse

Zwerg
Anzeige
AW: Suchen/Finden eines Wertes
21.12.2023 08:44:52
Zwerg
Hab gefunden. Es Funktioniert.

Vielen Dank :)
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige