Anzeige
Archiv - Navigation
1956to1960
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

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

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
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 :)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige