code??
21.02.2004 13:49:30
cunradus
folgendes problem:
will verschiedenste Formeln als text in einer zelle auslesen lassen
so z.B. in a1 steht 2, in a2 steht 3
in b1 erfolgt berechnung mit a1+a2
in b2 soll mir nunmehr ausgegeben werden: = 2 + 3 = (ohne ergebnis)
nachfolgender code von andre behandelt das problem bisher nur zum teil.
zum ersten gibt er das mit ergebnis aus (gut, damit könnte ich noch leben), aber sobald in der formel noch operanden wie z.B. a1*100+a2/3 vorhanden sind, dann erscheint die fehlermeldung '#wert'.
hier hätte ich dann aber gerne die darstellung: = 2*100 + 3/3 =
hat von euch einer eine idee
grüsse cunradus
Function Rechenweg2(Bereich As Range) As String
'von Andre Schau / 19.02.2004
Dim RechenZeichen, RechenWeg
Dim RechenZeichenStelle As Integer
If Bereich.Count > 1 Then Bereich = Bereich(1)
RechenWeg = Bereich.Address(0, 0) & " " & Bereich.FormulaLocal
RechenZeichen = Array("=", "+", "-", "*", "/", "^")
RechenZeichenStelle = Len(RechenWeg)
Do While RechenWeg <> ""
For i = 0 To UBound(RechenZeichen)
If InStr(RechenWeg, RechenZeichen(i)) < RechenZeichenStelle And _
InStr(RechenWeg, RechenZeichen(i)) <> 0 Then _
RechenZeichenStelle = InStr(RechenWeg, RechenZeichen(i))
Next
If RechenZeichenStelle = Len(RechenWeg) Then
Rechenweg2 = Rechenweg2 & Range(RechenWeg)
RechenWeg = ""
Else
Rechenweg2 = Rechenweg2 & Range(Left(RechenWeg, RechenZeichenStelle - 1)) & _
Mid(RechenWeg, RechenZeichenStelle, 1)
RechenWeg = Right(RechenWeg, Len(RechenWeg) - RechenZeichenStelle)
End If
RechenZeichenStelle = Len(RechenWeg)
Loop
End Function