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

VBA - Vergleichen von Listen und ermitteln des näh

VBA - Vergleichen von Listen und ermitteln des näh
14.11.2016 10:59:09
Listen
Guten Tag Leute,
ich bin neu hier und habe viel Gutes über das Forum hier gelesen.
Hoffentlich könnt Ihr mir weiterhelfen, ich hab leider keine Idee wie ich vorwärts komme.
Also mein Problem ist folgendes:
Ich möchte per VBA zwei Listen mit einander abgleichen und den näheren Wert ermitteln, welcher sich an dem Wert der Tabelle x befindet.
Bsp. Ist die -14 näher an die 10 oder an die 20; Ergebnis 10
Ist die -24 näher an die 20 oder an die 30; Ergebnis 20
Excel Sheet I
Tabelle x
-10
-20
-30
Excel Sheet II
Tabelle b
-14
-24
-34
Beide Tabellen befinden sich auf unterschiedlichen Excel-Sheets.
Ich möchte nun das ich einen Wert erhalte, welcher die "Tabelle x" mit der Tabelle b abgleicht und den Wert der sich näher an der "Tabelle x" (also dem X-Wert) befindet als I ausgibt.
Ich hoffe ich konnte das verständlich erklären.
Vielen lieben Dank für Eure Unterstützung und viele Grüße,
Marvin

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - Vergleichen von Listen und ermitteln des näh
14.11.2016 17:32:37
Listen
Hi Marvin,
ich hätte hier einen Vorschlag:
Sub ZellenVergleichen()
Dim varDat()
Dim varDat2()
Dim i As Integer
Dim j As Integer
Dim minimum As Long
Dim intPos As Double
With Tabelle7 'Gewünschtes Sheet anpassen (Sheet1 in Deinem Bsp)
y = 6 'Spalte für Ausgabe
varDat = .Range("A1").CurrentRegion
For i = LBound(varDat) To UBound(varDat)
varDat2 = Tabelle6.Range("A1").CurrentRegion
For j = LBound(varDat2) To UBound(varDat2)
varDat2(j, 1) = varDat(i, 1) - varDat2(j, 1)
If varDat2(j, 1) 
Das Makro nimmt nun aus Tabelle x aus der Range - in meinem Fall A1:A3 (.currentRegion evtl. anpassen) - den ersten Wert (10) und gleicht diesen mit allen Werten in der Range - in meinem Fall A1:A3 - der Tabelle b ab. Wenn der näherste Wert gefunden wird (durch Differenz ermittelt) wird ein "I" in Tabelle b ab Spalte "I" geschrieben. Zur besseren Veranschaulichung erhöht sich der Spaltenwert pro zu prüfenden Wert um 1. Problem ist, wenn die Werte in Tabelle b mit "I" überschrieben werden, kommt logischerweise eine Fehlermeldung. Wenn es nur einen Schleifendurchgang gibt, ist das kein Problem. Ist wahrscheinlich nicht 100% die benötigte Lösung aber vom Kern sollte es passen.
Ich hoffe, dass ich Dein Anliegen einigermaßen verstanden hab. Aber vielleicht können ja andere Mitglieder meinen Vorschlag noch erweitern?
VG Anton
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige