Da waren sie wieder – meine drei Probleme: Vergesslichkeit, Dings und das Andere.
Lieber René,
ich hoffe, es geht dir gut. Darf ich dir eine kurze Frage VBA stellen? Folgende Situation:

Ich habe eine geodätische Kuppel gebaut und möchte ein Gleichungssystem mit 3 Gleichungen und 3 Unbekannten zu lösen:
Function GleichungsSystemMatrix3x3und1x3Parameter(Matrix1 As Range, Matrix2 As Range) As Variant
GleichungsSystemMatrix3x3und1x3Parameter = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse(Matrix1), Matrix2)
End Function

Und jetzt kommts: Da kommen also 3 Parameter r, t und w raus (so will ich sie später nennen) und die hätte ich gerne in Variablen geschrieben und eben nicht gleich in die Excelzellen, wie das der obige Code halt macht.
Hättest du eine Idee und Lust zu helfen?
LG, Axel
moin Axel,
du musst die Arrays richtig zusammenbauen, dann klappt es. Das Überwachungsfenster hat mir geholfen.
Sub LösungBerechnen()
     Dim Matrix(2, 2) As Double
     Dim Lö1(2, 2) As Double
     Dim R1 As Double
     Dim R2 As Double
     Dim R3 As Double
     Dim T1 As Double
     Dim T2 As Double
     Dim T3 As Double
     Dim W1 As Double
     Dim W2 As Double
     Dim W3 As Double
     Dim L1 As Double
     Dim L2 As Double
     Dim L3 As DoubleR1 = 5
 R2 = 3
 R3 = 2
 T1 = -1
 T2 = 2
 T3 = 2
 W1 = 7
 W2 = 5
 W3 = 8
L1 = 3
 L2 = 4
 L3 = 1
Matrix(0, 0) = R1: Matrix(1, 0) = R2: Matrix(2, 0) = R3
 Matrix(0, 1) = T1: Matrix(1, 1) = T2: Matrix(2, 1) = T3
 Matrix(0, 2) = W1: Matrix(1, 2) = W2: Matrix(2, 2) = W3
Lö1(0, 0) = L1: Lö1(1, 0) = L2: Lö1(2, 0) = L3
MsgBox GleichungsSystemMatrix3x3und1x3Parameter_L1(Matrix, Lö1)
 MsgBox GleichungsSystemMatrix3x3und1x3Parameter_L2(Matrix, Lö1)
 MsgBox GleichungsSystemMatrix3x3und1x3Parameter_L3(Matrix, Lö1)
End Sub
Function GleichungsSystemMatrix3x3und1x3Parameter_L1(Matrix1 As Variant, Matrix2 As Variant) As Double
     Dim Lösung As Variant
     Lösung = Application.WorksheetFunction.mmult(Application.WorksheetFunction.MInverse(Matrix1), Matrix2)
     GleichungsSystemMatrix3x3und1x3Parameter_L1 = Lösung(1, 1)
 End Function
Function GleichungsSystemMatrix3x3und1x3Parameter_L2(Matrix1 As Variant, Matrix2 As Variant) As Double
     Dim Lösung As Variant
     Lösung = Application.WorksheetFunction.mmult(Application.WorksheetFunction.MInverse(Matrix1), Matrix2)
     GleichungsSystemMatrix3x3und1x3Parameter_L2 = Lösung(2, 1)
 End Function
Function GleichungsSystemMatrix3x3und1x3Parameter_L3(Matrix1 As Variant, Matrix2 As Variant) As Double
     Dim Lösung As Variant
     Lösung = Application.WorksheetFunction.mmult(Application.WorksheetFunction.MInverse(Matrix1), Matrix2)
     GleichungsSystemMatrix3x3und1x3Parameter_L3 = Lösung(3, 1)
 End Function

Liebe Grüße :: Rene