Excel-makro in CPP Code (HILFE)



  • Hallo Leute

    wieder mal ein kleines Problem!

    Ich soll ein "Programm" welches ein Honorar berechnet schreiben!
    Dieses gibt es schon, allerdings in Excel-Form!

    Nun sind die normalen berechnungen und eingaben easy, aber mit dieser funktion komm ich nicht zurecht!
    Das ist die Funktion für die Zone (zur Berechnung wichtig)!
    Wie kann ich das untengeschriebene verstehen damit ich es in CPP schreiben kann?
    Ich habe keine ahnung von makros!

    Danke schonmal!

    Interpol3D
    =ARGUMENT("x_i3w";1)
    =ARGUMENT("y_i3s";1)
    =ARGUMENT("x_Vek_i3";64)
    =ARGUMENT("y_vek_i3";64)
    =ARGUMENT("xy_M_i3";64)
    
    =INDEX(x_Vek_i3;1;SPALTEN(x_Vek_i3))
    =INDEX(y_vek_i3;ZEILEN(y_vek_i3);1)
    =VORZEICHEN(D8-INDEX(x_Vek_i3;1;1))
    =VORZEICHEN(D9-INDEX(y_vek_i3;1;1))
    
    =WENN(x_i3w=D8;SPALTEN(x_Vek_i3)-1;VERGLEICH(x_i3w;x_Vek_i3;D10))
    =WENN(y_i3s=D9;ZEILEN(y_vek_i3)-1;VERGLEICH(y_i3s;y_vek_i3;D11))
    
    =INDEX(x_Vek_i3;1;D13)
    =INDEX(x_Vek_i3;1;D13+1)
    =INDEX(y_vek_i3;D14;1)
    =INDEX(y_vek_i3;D14+1;1)
    
    =INDEX(xy_M_i3;D14;D13)
    =INDEX(xy_M_i3;D14;D13+1)
    =INDEX(xy_M_i3;D14+1;D13)
    =INDEX(xy_M_i3;D14+1;D13+1)
    
    =x_i3w-D16
    =D17-D16
    =y_i3s-D18
    =D19-D18
    =D26/D27
    =D28/D29
    
    =D21+(D22-D21)*D30+(D23-D21)*D31+(D24-D23-D22+D21)*D31*D30
    =ERGEBNIS(17)
    =RÜCKSPRUNG(D33)
    


  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • kann mir das denn niemand mal etwas erklären was sich dahinter versteckt?

    😞



  • das ist kein Excel-Makro, zumindest nicht in VB,
    das sind einzelne Excel-Funktionen, die im Excel in den Zellen stehen,
    die Funktionen kann man auch in der Excel-Hilfe für die jeweilige Funktion nachschlagen

    nur ARGUMENT, ERGEBNIS und RÜCKSPRUNG sind nicht bekannt

    in welcher Sprache soll das Makro denn sein? wie startet man es?

    interessant ist in diesem Fall die Excel-Datei selbst, da man dort genau sieht welche Werte für welche Rechnungen wie herangezogen werden



  • Hi!
    @ Linnea:

    Das es kein VB Makro ist is klar...
    das gepostete steht in einem Extratabellenblatt!
    Und is für die Berechnung von Honorar notwendig (ich gebe Honorar ein, dann die Zone, und dann kommt dieses "Makro" zum einsatz!)

    Eigentlich ist es m.e. wie eine Funktion, denn wenn ich in der Exceltabelle auf das Ergebnisses der Berechnung klicke, steht oben in der Leiste Interpol3D...!

    Wenn du willst kann ich dir die Exceldatei mal schicken??



  • ja, mach mal, interessiert mich wie das gemacht ist

    linnea.daserbe@gmx.de



  • ich hab mir die Hilfe für Makrovorlagen für Excel (http://www.officeprobleme.com/excel/downloads/XlMacr8ge.ZIP) gesucht,
    dort sind alle Funktionen erklärt

    Interpol3D ist eine benutzerdefinierte Funktion, der Funktion werden 5 Werte/Bereiche übergeben, 2 Werte (x, y), 2 Vektoren (x-, y-Vektor) und eine Matrix (xy-Matrix)

    die Funktion berechnet für die Werte x, y den dazugehörigen Matrixwert

    nehmen wir als Beispiel folgende Tabelle an:

    1     2      3       4
    10     2,5    3,5    4,5    5,5
    15     3      4      5      6
    20     3,5    4,5    5,5    6,5
    

    nun soll für x = 2 und y = 17 der genaue Wert berechnet werden (die Zeilenangaben beziehen sich auf die Zeilen im Excel)

    als erstes erfolgt eine Prüfung der Vektorreihenfolge, die Vektoren müssen sortiert sein (aufsteigend, absteigend ist egal) (Zeile 8-11)
    dann wird ermittelt ob x oder y der letzte Wert des jeweiligen Vektors ist, wenn ja, wird der wert um 1 nach unten verschoben, ansonsten wird die Stelle (Index) des x-, y-Wertes ermittelt (Zeile 13 + 14), für das Beispiel: x-Index = 2, y-Index = 15 (da y-Wert <=20)
    mit dem Index werden dann die Werte aus der Matrix ausgelesen und zwar erst die Werte der Vektoren (Zeile 16-19), für das Beipiel: x1 = 2, x2 = 3, y1 = 15, y2 = 20
    dann noch die Werte der Matrix für x1, x2, y1, y2 (Zeile 21-25), für das Beispiel: xm1 = 4, xm2 = 5, ym1 = 4,5, ym2 = 5,5
    in den Zeilen 26 - 31 werden die Anstiege und Abstände berechnet, für das Beispiel: dx = 0, Dx = 1, dy = 2, Dy = 5, kx = 0, ky = 0,4
    mit diesen Werten wird dann der genaue Wert berechnet (Zeile 33), für das Beispiel ergibt das 4,2

    die Umsetzung in C++ dürfte eigentlich nicht allzu schwer sein, ich werd das mal versuchen, hab aber leider nicht die nötige Zeit momentan 🙂

    Grüße
    Linnea



  • Hey danke, also ich schau mir das auch mal an!

    Aber wenn du es hinbekommen habe, hoffe ich doch das du mich das wissen lässt! 🙂 🙂

    So far...



  • Und Linnea?

    Hast du schon was raus bekommen?
    Würd mich mal interessieren!

    lg Ser


Anmelden zum Antworten