Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1656to1660
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

Excel VBA - lineare Interpolation

Excel VBA - lineare Interpolation
18.11.2018 17:57:05
SteinApfel
Liebe Community,
ich habe wiedermal eine Fragestellung an Euch, bei der Ihr mir bestimmt weiterhelfen könnt.
Hierbei beziehe ich mich auf einen Beitrag der schon älter ist:
https://www.herber.de/forum/archiv/840to844/841041_Makro_Lineare_Interpolation_und_Extrapolation.html
Dort habe ich mir die

Function hergeholt und versucht mir das anzueignen. Jedoch komme ich leider nicht weit...
Ich habe meine Werte umbenannt (einfacher für mich) und dies schon angepasst bei mir im  _
gesamten Code.
Auf Tabelle WSEinst sollen Werte eingegeben werden, nach dem Klick auf "Berechnen" soll die 
Function ausgeführt werden. Während WSEinst noch aktiv ist, werden dort die Variablen mit  _
Public deklariert die in die 

Function einfließen.
Jetzt sollte das Programm auf das Tabellenblatt WSKirchhoff wechseln und dort die Interpolation  _
ausführen.
Die Grundformel ist mir absolut bekannt, ich komme nur mit dem Code nicht klar, wüsste aber  _
auch nicht wie ich es für mich besser schreiben könnte...
ValAB ist das Verhältnis Höhe zur Breite, mit dem Wert gehe ich in die Tabelle. Allerdings  _
werde ich damit nicht den genauen Wert treffen. RngX müsste demnach die Zelle sein in der der Wert zu finden ist (ob größer oder kleiner weiß ich nicht, was VBA da wählt), RngY der Wert der eine Spalte daneben ist. Mit diesen Werten muss ich dann in die Berechnung rein.
Yint = Y1 + ((Y2 - Y1)/(X2 -X1)) * (X - X1)  [X = z.B. ValAB]

Function LinInt(RngX As Range, RngY As Range, ValAB As Double)
Dim Dimension As Long
rngy=?
rngx= ?
ValAB = Höhe / Breite
WSKirchhoff.Activate
Dimension = RngX.Cells.Count
On Error GoTo Fehler
If ValAB  RngX.Cells(Dimension).Value Then
If ValX 

Hoffe mir kann jemand weiterhelfen, ich wäre super Dankbar dafür :)
Falls nötig kann ich gerne auch die gesamte Datei reinstellen. Ich arbeite allerdings mit vielen Modulen und rufe die darin enthaltenen Code-Stücke auf.
Beste Grüße
Hendrik

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Als Formel und als VBA-Function
18.11.2018 19:48:03
lupo1
https://www.office-fragen.de/index.php/topic,46920.msg63586.html#msg63586
AW: Als Formel und als VBA-Function
18.11.2018 22:20:23
SteinApfel
Vielen Dank, habs mir jetzt über ne Std angeschaut und mit Google / Wiki etc. versucht das nachzuvollziehen. Aber ich komme einfach nicht drauf und Excel gibt bei mir nach wie vor eine Fehlermeldung aus.
Wenn ich z.B. (byval b as Range, x, y) eingeben möchte, sagt Excel mir es sei ein Listentrennzeichenfehler, dabei wird mir das in Fett-Schwarz darunter eingeblendet...
Ebenso habe ich nicht verstanden was B für eine Variable sein soll für den Code, das wäre doch der Eingangswert, aber damit werden Abstände ermittelt und Matrizen...
Spaln = B.Columns.Count
Zeiln = B.Rows.Count
Horiz = B.Offset(0, 1).Resize(1, Spaln - 1)
Verti = B.Offset(1, 0).Resize(Zeiln - 1, 1)
Matri = B.Offset(1, 1).Resize(Zeiln - 1, Spaln - 1)
Ich versteh das nicht... -.-
Anzeige
Das ist ja auch 2dim. Interpol., wo Du nur 1dim ..
18.11.2018 22:26:16
lupo1
...suchst.
Entsprechend ist die eine Dimension einfach mit gleichen Werten zu belegen.
Oder Du kürzst die Function auf Deine Formelvorlage.
AW: Das ist ja auch 2dim. Interpol., wo Du nur 1dim ..
18.11.2018 22:30:26
SteinApfel
Ich weiß es ist dreist, aber könntest du mir das genauer erklären bzw. mir dabei helfen?
Und der Fehler bleibt doch nach wie vor!? Ich blicke gerade nicht durch den Code und wo was passiert. Ebenso was alles vorher deklariert werden muss und als was.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige