Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Syntax-Problem LinEst in VBA

Syntax-Problem LinEst in VBA
21.05.2008 15:54:09
karsten
Hallo zusammen,
kann mir jemand erklären welchen Fehler ich im nachstehenden Code gemacht habe. Die Berechnung der Variable Steigung ergibt immer den Fehler "Typen unverträglich!"?
VG
Karsten

Function Approximation2()
Dim Zeile1 As Long
Dim Zeile2 As Long
Dim Steigung As Double
Zeile1 = 27
Zeile2 = 45
Steigung = WorksheetFunction.LinEst(Worksheets("Beispieldatensatz").Range("C" & Zeile1 & ":C" &  _
Zeile2).Value, WorksheetFunction.Ln(Worksheets("Beispieldatensatz").Range("B" & Zeile1 & ":B" & Zeile2).Value))
End Function

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Syntax-Problem LinEst in VBA
21.05.2008 16:16:00
Rudi
Hallo,
RGP ist eine Matrixformel. Die kannst du imho nicht in VBA verwenden.
Gruß
Rudi

AW: Syntax-Problem LinEst in VBA
21.05.2008 16:22:00
Renee
Hi Karsten,
Die Steigung kannst du mit SLOPE berechnen, so:

Function Steigung() As Double
Dim Zeile1 As Long
Dim Zeile2 As Long
Zeile1 = 27
Zeile2 = 45
Steigung = WorksheetFunction.Slope(Range("Beispieldatensatz!C" & Zeile1 & ":C" & Zeile2), _
Range("Beispieldatensatz!B" & Zeile1 & ":B" & Zeile2))
End Function


GreetZ Renée

AW: Syntax-Problem LinEst in VBA
21.05.2008 16:47:00
karsten
Ja Renee, das weiß ich.
Das Problem das ich die Steigung eines linearen Trend berechnen muss.
Das Beispiel von Dir funzt zwar, wenn ich allerdings so wie in meiner Vorlage geschrieben, den Logarithmus LN der X-Werte benötige geht es eben nicht mehr.
VG
Karsten

Anzeige
AW: Syntax-Problem LinEst in VBA
21.05.2008 17:00:00
Renee
Hi Karsten,
Sorry, das .LN hab ich komplett übersehen.
Vielleicht so:

Function Steigung() As Double
Dim arLN()
Dim ix As Integer
Dim Zeile1 As Long
Dim Zeile2 As Long
Zeile1 = 27
Zeile2 = 45
arLN = Range("Tabelle1!B" & Zeile1 & ":B" & Zeile2)
For ix = 1 To UBound(arLN())
arLN(ix, 1) = WorksheetFunction.Ln(arLN(ix, 1))
Next ix
Steigung = WorksheetFunction.Slope(Range("Tabelle1!C" & Zeile1 & ":C" & Zeile2), _
arLN)
End Function


GreetZ Renée

AW: Syntax-Problem LinEst in VBA
23.05.2008 08:15:51
karsten
Hi Renee,
danke für Dein Engagement. Leider gibts auch hier eine Fehlermeldung, die ich nicht zuordnen kann:
"Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen".
VG
Karsten

Anzeige
AW: Syntax-Problem LinEst in VBA
23.05.2008 08:51:00
Renee
Hi Karsten,
Die Tabellennamen müssen natürlich richtiggestellt sein.
Aber am Besten ist, du machst eine UDF daraus, d.h. unteren Code in ein Modul kopieren.
Dann in eine Zelle deiner Mappe diese Formel:
=LNSlope(Beispieldatensatz!C27:C45;Beispieldatensatz!B27:B45)
Code:

Public Function LNSlope(rYWerte As Range, rXWerteLN As Range) As Double
Dim arrLN()
Dim ix As Integer
arrLN = rXWerteLN
For ix = 1 To UBound(arrLN())
arrLN(ix, 1) = WorksheetFunction.Ln(arrLN(ix, 1))
Next ix
LNSlope = WorksheetFunction.Slope(rYWerte, arrLN)
End Function


GreetZ Renée

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige