114298
Goto Top

Quellcode auslesen - Formeln visualisieren

Hallo zusammen,

ich hoffe das Thema ist hier halbswegs richtig platziert.

Vielleicht kann mir jemand einen tipp geben wie und mit welchen Tools man folgende Anforderung umsetzen kann.

Wir haben eine eine Datenbank wo über 200 Kennzahlen berechnet werden.
Es sind ganze einfache Berechnungen (Grundrechenarten) allerdings sind diese Kennzahlen voneinander abhängig.

Wenn geprüft werden muss ob eine Kennzahl korrekt berechnet wird, muss mühselig im Code alles zusammengesucht werden.

Der Kunde hat zum Projektstart eine sehr sehr sehr komplizierte excel Tabelle mit den Formeln gehabt. Die ist allerdings nicht zu gebrauchen.
Hat bei der Entwicklung mehr Ärger gemacht als das sie geholfen hat.

Meine Idee war jetzt, im Quellcode als Kommentar die jeweilige Formel zu hinterlegen und diese eventuell mit vba auszulesen.

Jetzt wäre die Frage wie man weiter macht.
Das ganze dann in eine excel schreiben und anschließend vielleicht über visio visualisieren?
Vielleicht sogar in einer Mindmap?
In welcher Form schreibt man das am besten in excel?


Kennzahl1 - Bedingung1 - Formel
Kennzahl1 - Bedingung2 - Formel
Kennzahl2 - keine - Formel

??

In excel wäre das ja auch erstmal hardcoded. Die Formeln wären ja nicht verküpft. Kann excel anhand der Namen die Verknüpfung erstellen?

Würde mich über Tipps freuen.

Wünsche alles einen schönen 3. Advent

Content-Key: 358463

Url: https://administrator.de/contentid/358463

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: StefanKittel
StefanKittel 18.12.2017 um 00:55:07 Uhr
Goto Top
Hallo,

ich würde:

a) Eine vollständige Dokumentation der Berechnungen erstellen.
In Word oder ähnlich damit man etwas hat zum nachschlagen.

b) Eine Excel-Datei mit je einem Blatt pro Teil-Kennzahl.
Und zwar so wie im Matheunterricht.
Du trägst Oben die Ausgangzahl ein und hast für jeden Rechenschritt eine Zeile mit Erklärung und Zwischenwerten.
Dann kannst natürlich auf einem anderen Blatt mit den Werten weiterrechnen.

Wichtig ist, dass immer klar is wo eine Zahl herkommt.
Wichtig ist auch, dass klar ist was wovon abhängt und warum.

Stefan
Mitglied: 114298
114298 19.12.2017 um 12:56:14 Uhr
Goto Top
Hallo,

ich möchte quasi ein "Tool" bauen, um ggf. auch in anderen Projekten so eine Dokumentation automatisiert erstellen zu können.
Hätte auch den Vorteil, dass man sich nicht mehr um die Doku kümmern muss da diese bei Bedarf aus dem Quellcode der Datenbank erstellt werden kann.

Gibt es im Excel eventuell die Möglichkeit, dass sich Excel oder VBA die Zellen mit Hilfe eines Textes raussucht?

Beispiel siehe Anhang:
In der Zelle B3 steht als Text die Formel drin.
Ich würde nun gerne den Text durch die Zellenbezüge ersetzen Sodas in der Zelle B3 nun A1*A2 steht.

Grüße
bildschirmfoto 2017-12-19 um 12.52.39
Mitglied: 134998
Lösung 134998 19.12.2017 aktualisiert um 13:41:31 Uhr
Goto Top
Zitat von @114298:
Beispiel siehe Anhang:
In der Zelle B3 steht als Text die Formel drin.
Ich würde nun gerne den Text durch die Zellenbezüge ersetzen Sodas in der Zelle B3 nun A1*A2 steht.
Sub ReplaceInFormula()
    Dim cell As Range, cellFound As Range
    Set regex = CreateObject("vbscript.regexp")  
    regex.Global = True: regex.IgnoreCase = True
    regex.Pattern = "[a-z\d]+"  
    With ActiveSheet
        For Each cell In Range("B1:B" & .Cells(Rows.Count, "B").End(xlUp).Row)  
            Set matches = regex.Execute(cell.Value)
            For Each Match In matches
                Set cellFound = .Range("A:A").Find(Match, Lookat:=xlWhole)  
                If Not cellFound Is Nothing Then
                    cell.Replace Match, cellFound.Address, xlPart
                End If
            Next
        Next
    End With
End Sub
Best regards
Tom
Mitglied: 114298
114298 19.12.2017 um 13:46:56 Uhr
Goto Top
Wow, du bist genial.
Ich werde das für mich mal testen und berichten.

Besten Dank
Mitglied: 134998
134998 19.12.2017 aktualisiert um 13:49:52 Uhr
Goto Top
For your information, this only replaces the value in the cell it does not convert it to an actual active formula! If you want this, you need to write the contents of the cell again into the property FormulaLocal of the cell.