VBA - String als Formel verwenden

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: VBA - String als Formel verwenden
von: Rigo Ros
Geschrieben am: 25.11.2015 09:36:07

Hallo Zusammen,
ich arbeite noch nicht lange mit VBA und bin auf diesem Gebiet sozusagen "Fresh Meat".
Und kurz; JA, ich habe bereits Google benutzt und Foren durchsucht. Leider suche ich wohl falsch.
Ich bitte um Unterstützung bei folgendem Problem:
Ich rufe den Inhalt einer Zelle in VBA auf und schreibe diesen in einen String. Der Zelleninhalt soll eine mathematische Formel darstellen, welche mit Operatoren wioe "/" oder "+" arbeitet. Der Zelleninhalt ist variabel und die Formel ändert sich hin und wieder.
Ich habe einen Wert (davor Zahl / Double ) und will auf diesen die Formel (Zelleninhalt / String) anwenden um einen anderen Wert (danachZahl / Double) zu bekommen. Die Typen sind unverträglich. Klar. Leider gelingt es mir immer noch nicht den Zelleninhalt als Formel in VBA anzuwenden.
Bitte um Hilfe. :)
Hier noch ein Code-Teil:


Option Explicit
Sub berechnungRaw()
Dim davorZahl As Double
Dim danachZahl As Double
Dim Formel As String
Dim rdpMenge As Integer
Dim zeileRech As Integer
Dim spalteRech As Integer
Dim zeileHol As Integer
Dim spalteHol As Integer
zeileRech = 4
spalteRech = 2
zeileHol = 2
spalteHol = 7
rdpMenge = Sheets("Rechentabelle").Cells(2, 11).Value
Debug.Print rdpMenge
Do While spalteRech < 10
    Do While zeileRech < rdpMenge
'        Dim pos As Integer
'        Formel = Cells(3, spalteRech)
'        For pos = 1 To Len(Formel)
'            MsgBox Mid(Formel, pos, 1)
'        Next pos
        
        davorZahl = Sheets("RawData").Cells(zeileHol, spalteHol).Value
        Debug.Print davorZahl
        Formel = Sheets("Rechentabelle").Cells(3, spalteRech).Value
        Debug.Print Formel
'        Formel = Sheets("Rechentabelle").Cells(3, spalteRech).Formula
'        Debug.Print Formel
'        Text2Formula (Formel)
'        Debug.Print Formel
'        Text2Formula (davorZahl)
'        Text2Formula (danachZahl)
        danachZahl = davorZahl + Formel
        
        Debug.Print danachZahl
        
        Sheets("Rechentabelle").Cells(zeileRech, spalteRech).Value = danachZahl
        
        
        zeileRech = zeileRech + 1
        Debug.Print zeileRech
        
        zeileHol = zeileHol + 1
        Debug.Print zeileHol
    Loop
    
    zeileRech = 4
    spalteRech = spalteRech + 1
    
    zeileHol = 2
    spalteHol = spalteHol + 1
Loop
End Sub
Function Text2Formula(sTxt As String)
   sTxt = Application.Substitute(sTxt, ",", ".")
   Text2Formula = Evaluate(sTxt)
End Function

Bild

Betrifft: AW: VBA - String als Formel verwenden
von: fcs
Geschrieben am: 30.11.2015 10:42:56
Hallo Rigo Ros,
im Prinzip sollte es so funktionieren:

        danachZahl = davorZahl + Text2Formula(Formel)

Die Formel in Zeile 3 kann dann z.B. sein:
=3,6*$F$2*7/2
=3,6*7/2
Gruß
Franz

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA - String als Formel verwenden"