online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon seebaer_1 vom 13.02.2020, 09:43 Options

VBA + zellen vergleichen und rausschreiben

hallo,

gibt es per VBA-Code eine Möglichkeit zellen folgendermaßen zu vergleichen.

in zelle A1 steht der wert "290.1"

dieser wert soll nun in den zellen B1-B3 gefunden werden und dann in die zelle A100 ausgelesen werden, steht der wert "290.1" nicht genau exakt in dem zellen B1-B3 dann soll der wert der 290.1 am nächsten ist, ausgelesen, d.h. der wert mit den geringsten abweichungen soll ausgelesen werden.

bsp:

B1: 250
B2: 360
B3: 288

dh in zelle A100 soll 288 ausgelesen werden da dieser wert 290.1 am nächsten ist.

Vielen Dank für die Hilfe im Voraus,

MfG
seebaer


Antwort schreiben

Antwort 1 von Saarbauer vom 13.02.2020, 11:13 Options

Hallo,

versuch es mal damit

Sub nächsterWert()
    Min = Range("A1").Value
    wert = Range("A1").Value
    For i = 1 To 3
        If Abs(Range("A1").Value - Range("B" & i).Value) < Min Then
            Min = Abs(Range("A1").Value - Range("B" & i).Value)
            wert = Range("B" & i).Value
        End If
    Next i
    Range("A100").Value = wert
End Sub
Sub nächsterWert()
    Min = Range("A1").Value
    wert = Range("A1").Value
    For i = 1 To 3
        If Abs(Range("A1").Value - Range("B" & i).Value) < Min Then
            Min = Abs(Range("A1").Value - Range("B" & i).Value)
            wert = Range("B" & i).Value
        End If
    Next i
    Range("A100").Value = wert
End Sub


Gruß

Helmut

Antwort 2 von Saarbauer vom 13.02.2020, 11:34 Options

Hallo,

habe aus versehen das makro 2 mal reinkopiert

Gruß

Helmut

Antwort 3 von seebaer_1 vom 13.02.2020, 12:10 Options

hallo helmut,

danke für deine schnelle antwort,

ich werde so schnell jedoch nicht dazu kommen es auszuprobieren, ich werde mich dann noch melden obs funktioniert hat, danke.

MfG
seebaer

Antwort 4 von seebaer_1 vom 13.02.2020, 14:41 Options

hallo helmut,

dies makro ist genau das was ich gesucht habe, es funktioniert.

wie würde das veränderte makro denn aussehen, wenn mit A1 nicht B1-B3 verglichen werden würde sondern zB der Bereich C6:E10

geht das dann auch so schön oder nicht?

vielen dank

MfG
seebaer

Antwort 5 von Saarbauer vom 13.02.2020, 15:16 Options

Hallo,

dann so

Sub nächsterWert()
Min = Range("A1").Value
Wert = Range("A1").Value
For i = 6 To 10
For j = 3 To 5
If Abs(Range("A1").Value - Cells(i, j).Value) < Min Then
Min = Abs(Range("A1").Value - Cells(i, j).Value)
Wert = Cells(i, j).Value
End If
Next j
Next i
Range("A100").Value = Wert
End Sub


Gruß

Helmut

Antwort 6 von seebaer_1 vom 14.02.2020, 13:31 Options

hallo helmut,

danke für deine AWs, das funktioniert.

hätte jetzt allerdings zur AW 4 noch eine kleine änderung. Wenn im bereich C6:E10, sagen wir D8 als dieser gesuchte wert gefunden worden ist (der a1 am nächsten ist), dann soll der wert der zelle, 2 zeilen darunter also D10 (und nicht D8) in A100 geschrieben werden, hast du hier eine idee?

danke

MfG
seebaer

Antwort 7 von Saarbauer vom 14.02.2020, 13:45 Options

Hallo,

dann müsste diese Zeile so geändert werden

Wert = Cells(i+2, j).Value

Gruß

Helmut

Antwort 8 von Saarbauer vom 14.02.2020, 14:10 Options

hallo,

noch eine kleine Ergänzung zu deinen Fragen und meinen Antworten. Du solltest nich immer nur ganz kleine Brocken deines Problems darstellen und dann das nächste nachlegen. Man muss sich jedesmal wieder reindenken und da verliert man auch irgendwann die Lust

Gruß

Helmut

Antwort 9 von seebaer_1 vom 26.02.2020, 08:36 Options

hallo zusammen,

ich hätte hier noch eine kleine ergänzungsfrage.

die zellenabfrage aus AW4 (c6:e10) wurde durch AW5 beantwortet.

weis jemand wie sich der code aus AW5 ändert, wenn erneut in dem bereich C6 bis E10 gesucht werden soll, in diesem bereich aber auch "leere" zellen stehen können, denn wenn dies der fall ist klappt der code aus AW 5 nicht, dh der code macht nichts.

danke
mfg
seebaer

Ähnliche Themen

Excel - Daten vergleichen und niedrigsten Wert markieren
Racerking33  11.04.2007 - 355 Hits - 1 Antwort

einzelne Datensätze einer vba-abfrage weiter nutzen
derHilfesuchende  19.05.2007 - 169 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026