Hi,
anhand der von die gelieferten Beschreibung, kann ich dir nur sagen, dass du versuchst einer Integer-Variable ein Range-Objekt zuzuweisen und das das nicht geht. Du kannst nur einer Range-Variable oder einer Variant-Variable eine Range zuweisen.
Außerdem empfiehlt es sich die Worksheet Zuweisung nicht jedesmal auszuschreiben, da das Zeit kostet und anfällig für Fehler ist z.B.:
Kurs = Worksheets("Aktie").Range(Cells(3, 2), Cells(3, 6))
müsste so lauten:
Kurs = Worksheets("Aktie").Range(Worksheets("Aktie").Cells(3, 2), Worksheets("Aktie").Cells(3, 6))
oder etwas besser:
dim ws as worksheet
set ws=worksheets("Aktie")
Kurs = ws.Range(ws.Cells(3, 2),ws.Cells(3, 6))
oder am besten (IMO):
with worksheets("Aktie")
Kurs = .Range(.Cells(3, 2), .Cells(3, 6))
end with
Was den Rest angeht, kann ich nur raten, ich vermute, dass deine Zielfunktion etwa so aussehen sollte:
Sub Aktienkurse()
Rem Deklarieren
Dim Aktie As String
Dim Kurs
Dim Durchschnitt As Double
Rem Initialisieren
Min = 99999
Max = 0
Durchschnitt = 0
With Worksheets("Tabelle1")
Rem Datensatz einlesen
Name = .Cells(3, 1)
Kurs = .Range(.Cells(3, 2), .Cells(3, 6)).Value
'Überschriften ausgeben
.Cells(7, 1) = "Name:"
.Cells(7, 2) = "Durchnschnittskurs in €"
.Cells(8, 2) = WorksheetFunction.Average(Kurs)
.Cells(7, 3) = "Niedrigster kurs in €"
.Cells(8, 3) = WorksheetFunction.Min(Kurs)
.Cells(7, 4) = "Höchster Kurs in €"
.Cells(8, 4) = WorksheetFunction.Max(Kurs)
End With
End Sub
Falls dem nicht so ist, kannst du daraus vielleicht die erwünschte Funktion basteln.
Viel Erfolg
Till
|