Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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

VBA rechnet falsch?

VBA rechnet falsch?
30.11.2019 16:55:03
Salih
Guten Abend,
ich habe ein Programm geschrieben, welches folgende Tabelle ausfüllen soll.
Userbild
Dabei soll wird die Tabelle so gelesen:
Es sind verschiedene Profile untereinander aufgelistet, z.B. mehrere Rechtecke, Kreise ...
und in der Spalte B findet man die Werte für die Parameter (h= Höhe, b= Breite...).
Mit dem Modul "Berechung" werden die Spalten D bis L ausgefüllt. Mein Programm liefert bei den ersten Profilen zwar
richtige Ergebnisse, aber ab dem Kreis erhalte ich falsche Ergebnisse und ich verstehe nicht warum.
Entweder erhalte ich den Wert 0 oder #Name ?, beides sollte nicht sein.
Der Code im Modul "Berechnung" lautet:
Public z As Integer

Sub Berechnung()
z = 2
lastrow = Worksheets("Test2").Cells(Rows.Count, 1).End(xlUp).Row
'Berechnugsschleife
While z 

Sub Rechteck()
h = Worksheets("Test2").Cells(z, 3).Value
b = Worksheets("Test2").Cells(z + 1, 3).Value
Worksheets("Test2").Cells(z, 4).Value = b * h
Worksheets("Test2").Cells(z, 5).Value = b * h ^ 3 / 12
Worksheets("Test2").Cells(z, 6).Value = b * h ^ 3 / 3
Worksheets("Test2").Cells(z, 7).Value = b * h ^ 2 / 6
Worksheets("Test2").Cells(z, 8).Value = b ^ 2 * h ^ 2 / (3 * h + 1.8 * b)
Worksheets("Test2").Cells(z, 9).Value = h / b
Worksheets("Test2").Cells(z, 10).Value = 2.38 * h / b
Worksheets("Test2").Cells(z, 11).Value = (h / b) ^ 0.5
Worksheets("Test2").Cells(z, 12).Value = 1.6 * (b / h) ^ 0.5 * (1 / (1 + 0.6 * b / h))
End Sub

Sub Dreieck()
a = Worksheets("Test2").Cells(z, 3).Value
'Berechnung A
Worksheets("Test2").Cells(z, 4).Value = "=a^2*((3)^0.5/4)"
'Berechnung I
Worksheets("Test2").Cells(z, 5).Value = "=a^4/(32*3^0.5)"
'Berechnung K
Worksheets("Test2").Cells(z, 6).Value = "=(a^4*(sqrt(3))/80)"
'Berechnung Z
Worksheets("Test2").Cells(z, 7).Value = "=a^3/32"
'Berechnung Q
Worksheets("Test2").Cells(z, 8).Value = "=a^3/20"
'Berechnung phi_e_B
Worksheets("Test2").Cells(z, 9).Value = "=2/3^0.5"
'Berechnung phi_e_T
Worksheets("Test2").Cells(z, 10).Value = "=0.832"
'Berechnung phi_f_B
Worksheets("Test2").Cells(z, 11).Value = "=3^0.25/2"
'Berechnung phi_f_T
Worksheets("Test2").Cells(z, 12).Value = "=0.83"
End Sub

Sub Kreis()
r = Worksheets("Test2").Cells(z, 3).Value
'Berechnung A
Worksheets("Test2").Cells(z, 4).Value = "=r^2*pi()"
'Berechnung I
Worksheets("Test2").Cells(z, 5).Value = "=r^4*pi()/4"
'Berechnung K
Worksheets("Test2").Cells(z, 6).Value = "=r^4*pi/2"
'Berechnung Z
Worksheets("Test2").Cells(z, 7).Value = "=r^3*pi()/4"
'Berechnung Q
Worksheets("Test2").Cells(z, 8).Value = "=r^3*pi()/2"
'Berechnung phi_e_B
Worksheets("Test2").Cells(z, 9).Value = "=3/pi()"
'Berechnung phi_e_T
Worksheets("Test2").Cells(z, 10).Value = "=1.14"
'Berechnung phi_f_B
Worksheets("Test2").Cells(z, 11).Value = "=3/(2*pi()^0.5)"
'Berechnung phi_f_T
Worksheets("Test2").Cells(z, 12).Value = "=1.35"
End Sub

Sub Ellipse()
a = Worksheets("Test2").Cells(z, 3).Value
b = Worksheets("Test2").Cells(z + 1, 3).Value
'Berechnung A
Worksheets("Test2").Cells(z, 4).FormulaR1C1 = "=a*b*pi()"
'Berechnung I
Worksheets("Test2").Cells(z, 5).FormulaR1C1 = "=a^3*b*(pi()/4)"
'Berechnung K
Worksheets("Test2").Cells(z, 6).FormulaR1C1 = "=pi()*a^3*b^3/(a^2+b^2)"
'Berechnung Z
Worksheets("Test2").Cells(z, 7).FormulaR1C1 = "=pi()/4*a^2*b"
'Berechnung Q
Worksheets("Test2").Cells(z, 8).FormulaR1C1 = "=pi()/2*a^2*b"
'Berechnung phi_e_B
Worksheets("Test2").Cells(z, 9).FormulaR1C1 = "=3/pi()*a/b"
'Berechnung phi_e_T
Worksheets("Test2").Cells(z, 10).FormulaR1C1 = "=2.28*a*b/(a^2+b^2)"
'Berechnung phi_f_B
Worksheets("Test2").Cells(z, 11).FormulaR1C1 = "=3/(2*pi()^0.5)*(a/b)^0.5"
'Berechnung phi_f_T
Worksheets("Test2").Cells(z, 12).FormulaR1C1 = "=1.35*(a/b)^0.5"
End Sub

Sub Hohlzylinder()
r = Worksheets("Test2").Cells(z, 3).Value 'Außenradius
t = Worksheets("Test2").Cells(z + 1, 3).Value 'Dicke
ri = r0 - t 'Innenradius
'Berechnung A
Worksheets("Test2").Cells(z, 4).FormulaR1C1 = "=pi()*(r^2-ri^2)"
'Berechnung I
Worksheets("Test2").Cells(z, 5).FormulaR1C1 = "=pi()/4*(r^4-ri^4)"
'Berechnung K
Worksheets("Test2").Cells(z, 6).FormulaR1C1 = "=pi()/2*(r^4-ri^4)"
'Berechnung Z
Worksheets("Test2").Cells(z, 7).FormulaR1C1 = "=pi()/4/r*(r^4-ri^4)"
'Berechnung Q
Worksheets("Test2").Cells(z, 8).FormulaR1C1 = "=pi()/2/r*(r^4-ri^4)"
'Berechnung phi_e_B
Worksheets("Test2").Cells(z, 9).FormulaR1C1 = "=3*r/pi()/t"
'Berechnung phi_e_T
Worksheets("Test2").Cells(z, 10).FormulaR1C1 = "=1.14*r/t"
'Berechnung phi_f_B
Worksheets("Test2").Cells(z, 11).FormulaR1C1 = "=3/((2*pi())^0.5)/(r/t)^0.5"
'Berechnung phi_f_T
Worksheets("Test2").Cells(z, 12).FormulaR1C1 = "=1.91*(r/t)^0.5"
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA rechnet falsch?
30.11.2019 17:33:04
onur
Du schreibst zwar:
r = Worksheets("Test2").Cells(z, 3).Value

aber damit wird nur der WERT für r an VBA übergeben. Die Formel die du schreibst enthält aber nur den BUCHSTABEN r und Excel kann damit nix anfangen.
Das gilt aber auch für deine anderen Formeln (Dreieck mit a und Rechteck mit h und b), die können auch nicht richtig sein.
Wieso musst du denn die FORMELN in die Tabelle eintragen und nicht die WERTE?
Entweder VBA oder EXCEL - aber wozu Beides?
AW: VBA rechnet falsch?
30.11.2019 17:41:54
onur
Ausserdem steht da auch mind. einmal pi statt pi().
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige