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

Object Error bei Function

Object Error bei Function
22.10.2014 19:56:48
Bay
Hallo zusammen, ich habe eine Function abgeändert um nach Eingabe des Ticker-Symbols den Beta Paramater der Aktie von reuters.com zu erhalten.
'Beta Function. Posted by mybeam. Code für Reuters.com angepasst
Function GetBeta(ByVal tRange As Range) As Single
Dim xHttp As Object
Dim t, Ticker  As String
Set xHttp = CreateObject("Microsoft.XMLHTTP")
Ticker = tRange.Text
xHttp.Open "GET", "http://www.reuters.com/finance/stocks/overview?symbol=" & Ticker, False
xHttp.Send
t = xHttp.responseText
t = Mid(t, InStr(t, ">Beta:") + 1)
t = Mid(t, InStr(t, ">") + 1)
t = Mid(t, InStr(t, ">") + 1)
GetBeta = Val(Left(t, InStr(t, "
Die Function scheint zu funktionieren. Wenn ich die folgende Sub starte und in Zelle E14 EDF.PA (das Ticker-Symbol von Electricité de France) steht, erhalte ich den korrekten Beta-Wert von 0.95.
Private Sub CommandButton4_Click()
Dim Beta As Double
Beta = GetBeta(Worksheets("Home").Range("E14"))
MsgBox Beta
End Sub

Nun würde ich die Function gerne in mein Userform einbauen und schlussendlich über eine select case Abfrage das Ticker-Symbol zuweisen. Allerdings habe ich bereits Schwierigkeiten, wenn die Function nicht auf Zelle E14 zugreifen soll, sondern auf eine von mir bestimmte Variable (trange).
Private Sub CommandButton5_Click()
Dim Beta As Double
Dim trange As Range
trange = EDF.PA
Beta = GetBeta(trange)
MsgBox Beta
End Sub

Wenn ich auf den CommandButton5 klicke erhalte ich immer einen Runtime error 424 object required.
Vermutlich habe ich was mit den Variabeln durcheinandergebracht, komm aber leider einfach nicht weiter.
Besten Dank für eure Hilfe!

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

Betreff
Datum
Anwender
Anzeige
AW: Object Error bei Function
22.10.2014 21:42:27
Patrick
Hallo Bay
Versuche es mit:
Private Sub CommandButton5_Click()
Dim Beta As Double
Beta = GetBeta(Worksheets("Home").Range("E14"))
Label1.Caption = Beta
End Sub
Gruss
Patrick

AW: Object Error bei Function
22.10.2014 21:48:36
Bay
Hallo Patrick,
Danke für deine Antwort. Vielleicht habe ich mich unglücklich ausgedrückt. Die function, die auf das Worksheet zugreift, funktioniert. Wenn ich aber nicht auf das worksheet "home" zugreifen will, sondern direkt auf eine Variable (welche mir durch eine vorgestellte select case Auswahl ausgegeben wird) habe ich Probleme. Die untenstehende Sub funktioniert nicht wie gewünscht.
Private Sub CommandButton5_Click()
Dim Beta As Double
Dim trange As Range
trange = EDF.PA
Beta = GetBeta(trange)
MsgBox Beta
End Sub

Anzeige
AW: Object Error bei Function
22.10.2014 22:02:44
Patrick
Hallo Bay
Neuer Versuch :)
Private Sub CommandButton5_Click()
Dim Beta As Double
Dim trange As Range
Beta = GetBeta(trange)
MsgBox Beta
End Sub
Bei mir hat es so funktioniert! Einfach das

trange = EDF.PA
herauslöschen :)
Gruss
Patrick

AW: Object Error bei Function
22.10.2014 22:10:32
Bay
Mhmm :) Aber ich würde gerne auf die variable trange zugreifen. Mir schwebt was im folgenden Stil vor. Zuerst wähle ich mit einer Combobox den Aktientitel aus (da die Ticker-Symbole nicht immer aussagekräftig sind). Die Function soll dann das Resultat des Select Case übernehmen. Somit kann ich die Variable trange nicht einfach weglassen.
Private Sub CommandButton5_Click()
Dim Beta As Double
Dim trange As Range
Select Case Userform1.ComboBox_D.Value
Case "ACCOR"
trange = "AC.PA"
Case "ELECTRICITE DE FRANCE"
trange = "EDF.PA"
Beta = GetBeta(trange)
MsgBox Beta
End Sub

Anzeige
Dann muss 'trange' aber 'As String' sein und ...
22.10.2014 22:23:46
Luc:-?
…das dürfte dann auch weder ein Bereich noch sein Name sein, Bay,
falls das in deiner Mappe nicht schon so angelegt ist.
Luc :-?

Was ist 'EDF.PA', ein Text oder ein Objekt?
22.10.2014 22:19:28
Luc:-?
Davon hängen nämlich die Schreibweise und ÜbergabeForm ab, Bay;
da du das nicht deklariert hast, kann man sonstwas vermuten. trange ist aber als Range deklariert, also ein Objekt, und so etwas muss man Setzen. Dann sollte EDF.PA also auch einen Bereich bezeichnen, somit ein Name und damit Text sein. Damit kann ganz auf trange verzichtet wdn, denn deine Fkt erwartet ohnehin einen Bereich. Also würde in der Deklaration Const naBer$ = "EDF.PA" und dann Beta = GetBeta(Range(naBer)) oder gleich nur Beta = GetBeta(Range("EDF.PA")) reichen (dann musst du den auch nicht am PgmEnde Nothing Setzen).
Gruß, Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige