Guten Morgen,
vorab: Ich bin noch eine Anfängerin wenn es um VBA geht.
Möchte dennoch gerne Wachstumsraten im VBA berechnen und mir n-mögliche Wahrscheinlichkeiten meiner GUV Posten anzuzeigen (Monte Carlo Simulation). Jedoch bekomme ich dauernd eine Fehlermeldung "Fehler bei kompilieren - Typen unverträglich". Ich weiß nicht wo der Fehler herkommt und weshalb mir das angezeigt wird.
Würde mich wirklich über Hilfe freuen. Bin echt verzweifelt.
LG Diane
Sub PlanungStarten()
Dim jahr As Byte
Dim n As Integer
Dim j As Byte
'Basisjahr einlesen
With basisjahr
.umsatz = Sheets("Basisdaten").Cells(4, 2).Value
.ertrŠge = Sheets("Basisdaten").Cells(5, 2).Value
.material = Sheets("Basisdaten").Cells(6, 2).Value
.personal = Sheets("Basisdaten").Cells(7, 2).Value
.afa = Sheets("Basisdaten").Cells(8, 2).Value
.aufwendungen = Sheets("Basisdaten").Cells(9, 2).Value
.aufwendungenFinanzergebnis = Sheets("Basisdaten").Cells(10, 2).Value
.ertrŠgeFinanzergebnis = Sheets("Basisdaten").Cells(11, 2).Value
.ergebnis = Sheets("Basisdaten").Cells(12, 2).Value
.steuern = Sheets("Basisdaten").Cells(13, 2).Value
.jahresŸberschuss = Sheets("Basisdaten").Cells(14, 2).Value
End With
'Wachstumsraten einlesen
With Sheets("Basisdaten")
umsatz_min = .Cells(4, 4)
umsatz_max = .Cells(4, 5)
ertrŠge_min = .Cells(5, 4)
ertrŠge_max = .Cells(5, 5)
material_min = .Cells(6, 4)
material_max = .Cells(6, 5)
personal_min = .Cells(7, 4)
personal_max = .Cells(7, 5)
afa_min = .Cells(8, 4)
afa_max = .Cells(8, 5)
aufwendungen_min = .Cells(9, 4)
aufwendungen_max = .Cells(9, 5)
aufwendungenFinanzergebnis_min = .Cells(10, 4)
aufwendungenFinanzergebnis_max = .Cells(10, 5)
ertrŠgeFinanzergebnis_min = .Cells(11, 4)
ertrŠgeFinanzergebnis_max = .Cells(11, 5)
steuern_min = .Cells(13, 4)
steuern_max = .Cells(13, 5)
End With
'Eine Zufallsplanung erstellen
Randomize
For n = 1 To MC_WIEDERHOLUNG
'Das erste Jahr basiert auf Basisjahr
With planungsreihe(n, 1)
.umsatz = basisjahr.umsatz * gen_wachstumsrate(umsatz_min, umsatz_max)
.ertrŠge = basisjahr.ertrŠge * gen_wachstumsrate(ertrŠge_min, ertrŠge_max)
.material = basisjahr.material * gen_wachstumsrate(material_min, material_max)
.personal = basisjahr.personal * gen_wachstumsrate(personal_min, personal_max)
.afa = basisjahr.afa * gen_wachstumsrate(afa_min, afa_max)
.aufwendungen = basisjahr.aufwendungen * gen_wachstumsrate(aufwendungen_min, aufwendungen_max)
.aufwendungenFinanzergebnis = basisjahr * gen_wachstumsrate(aufwendundungenFinanzergebnis_min, aufwendungenFinanzergebnis_max)
.ertrŠgeFinanzergebnis = basisjahr * gen_wachstumsrate(ertrŠgeFinanzergebnis_min, ertrŠgeFinanzergebnis_max)
.ergebnis = .umsatz - .material - .personal - .afa
.steuern = basisjahr.steuern * gen_wachstumsrate(steuern_min, steuern_max)
.jahresŸberschuss = .ergebnis - .steuern
End With
'Die nŠchsten Jahre basieren auf Vorjahr
For jahr = 2 To 5
With planungsreihe(n, jahr)
.umsatz = planungsreihe(n, jahr - 1).umsatz * gen_wachstumsrate(umsatz_min, umsatz_max)
.ertrŠge = planungsreihe(n, jahr - 1).ertrŠge * gen_wachstumsrate(ertrŠge_min, ertrŠge_max)
.material = planungsreihe(n, jahr - 1).material * gen_wachstumsrate(material_min, material_max)
.personal = planungsreihe(n, jahr - 1).personal * gen_wachstumsrate(personal_min, personal_max)
.afa = planungsreihe(n, jahr - 1).afa * gen_wachstumsrate(afa_min, afa_max)
.aufwendungen = planungsreihe(n, jahr - 1).aufwendungen * gen_wachstumsrate(aufwendungen_min, aufwendungen_max)
.aufwendungenFinanzergebnis = planungsreihe(n, jahr - 1).aufwendungenFinanzergebnis * gen_wachstumsrate(aufwendungenFinanzergebnis_min, afa_max)
.ertrŠgeFinanzergbnis = planungsreihe(n, jahr - 1).ertrŠgeFinanzergebnis * gen_wachstumsrate(ertrŠgefinanzergbnis_min, ertrŠgeFinanzergebnis_max)
.ergebnis = .umsatz - .material - .personal - .afa
.steuern = planungsreihe(n, jahr - 1).steuern * gen_wachstumsrate(steuern_min, steuern_max)
.jahresŸberschuss = .ergebnis - .steuern
End With
Next jahr
Next n
'Ausgabe in einzelne Tabellenbl_tter
For n = 1 To MC_WIEDERHOLUNG
Sheets("Umsatz").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Umsatz").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).umsatz
Next j
Sheets("ErtrŠge").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("ErtrŠge").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).ertrŠge
Next j
Sheets("Material").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Material").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).material
Next j
Sheets("Personal").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Personal").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).personal
Next j
Sheets("Afa").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Afa").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).afa
Next j
Sheets("Aufwendungen").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Aufwendungen").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).aufwendungen
Next j
Sheets("AufwendungFinanzergebnis").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("AufwendungFinanzergbnis").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).aufwendungenFinanzergebnis
Next j
Sheets("ErtrŠgeFinanzergebnis").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("ErtrŠgeFinanzergebnis").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).ertrŠgeFinanzergebnis
Next j
Sheets("Ergebnis").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Ergebnis").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).ergebnis
Next j
Sheets("Steuern").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("Steuern").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).steuern
Next j
Sheets("JahresŸberschuss").Cells(n + 5, 1).Value = n
For j = 1 To 5
Sheets("JahresŸberschuss").Cells(n + 5, 1 + j).Value = planungsreihe(n, j).jahresŸberschuss
Next j
Next n
End Sub
|