für ein Uni-Projekt muss ich derzeit eine Portfolio-Optimierung zusammenbauen.
Hierfür habe ich mehrere Aktien, deren Renditen und Standardabweichungen ich berechne um am Ende den effizienten Rand zu berechnen.
Im Benutzerfenster soll man eingeben, welche Rendite man erwartet und welchen Zins eine sichere Anlage hat, desweiteren soll eine Tick-Box zum Einsatz kommen, mit der man auswählt, ob Leerverkäufe zulässig sind oder nicht.
Nun hatte ich zunächst die Folgende Schleifen um bei allen Werten, Tage an denen das Handelsvolumen bei 0 liegt, rauszulöschen.
Funktioniert auch, aber ich wollte das ganze vereinheitlichen, da es bei mehr Aktien ja immer _
mehr Code wird:
Sub 1()
Dim wsBMW As Worksheet: Set wsBMW = Worksheets("BMW")
Dim wsBASF As Worksheet: Set wsBASF = Worksheets("BASF")
Dim wsRWE As Worksheet: Set wsRWE = Worksheets("RWE")
'Tage, an denen nicht gehandelt wurde löschen
Dim i As Integer, j As Integer, k As Integer
Dim letzteZeileBMW As Long: letzteZeileBMW = wsBMW.Cells(2, 6).End(xlDown).Row
Dim lZBASF As Long: lZBASF = wsBASF.Cells(2, 6).End(xlDown).Row
Dim lZRWE As Long: lZRWE = wsRWE.Cells(2, 6).End(xlDown).Row
For i = 1 To letzteZeileBMW
With wsBMW
If .Cells(i, 6) = "0" Then
.Rows(i).Delete
End If
End With
Next i
For j = 1 To lZBASF
With wsBASF
If .Cells(j, 6) = "0" Then
.Rows(j).Delete
End If
End With
Next j
For k = 1 To lZRWE
With wsRWE
If .Cells(k, 6) = "0" Then
.Rows(k).Delete
End If
End With
Next k
Nun habe ich das ganze versucht zu kürzen, hierbei kam aber immer wieder der Fehler:"Fehler _
beim Kompilieren. Unzulässiger oder nicht ausreichend definierter Verweis." Hierbei wird . _ Rows(i) markiert.
Sub 1()
Dim wsBMW As Worksheet: Set wsBMW = Worksheets("BMW")
Dim wsBASF As Worksheet: Set wsBASF = Worksheets("BASF")
Dim wsRWE As Worksheet: Set wsRWE = Worksheets("RWE")
Dim ws As Worksheet
'Tage, an denen nicht gehandelt wurde löschen
Dim i As Integer
For Each ws In ActiveWorkbook.Sheets
For i = ws.Cells(2, 6).End(xlDown).Row To 1
If ws.Cells(i, 6) = "0" Then .Rows(i).Delete
Next i
Next ws
Nun meine Frage, was ist an meinem kurzen Code falsch. Desweiteren wie kann ich einstellen, dass nur bestimmte worksheets berarbeitet werden, bzw. gewisse worksheets nicht bearbeitet werden?