Hallo zusammen,
ich (absolute VBA-Anfängerin) versuche derzeit in Excel-VBA über einen Loop einen Näherungswert festzulegen. Dies soll für insgesamt 5 Gruppen erfolgen.
Gruppe 1 Zielwert Näherungswert Faktor (zu bestimmen)
Gruppe 2 ……………………………………………………………………………………………….
…
Maßgebend sind die nachfolgenden Zellen im Excel-Arbeitsblatt:
Faktor gesuchte Zielgröße (Zellen R 41-45). Wird in einem Einzelblatt mit verschiedenen Grundbeträgen multipliziert und weiter verrechnet. Die Ergebnisse (in Summe je Gruppe) ergeben den Näherungswert.
Näherungswert (Zellen P 41 -45) Ergibt sich durch eine Summewenn-Funktion über eine sehr große Anzahl an Einzelwerten. Soll möglichst dem Zielwert entsprechen (geringe Abweichung).
Zielwert fixer Betrag (Zellen O41-45), mit dem der Näherungswert möglichst übereinstimmen soll
Ich habe mich zunächst an einer DoUntil-Schleife versucht (für Gruppe1). Idee war zunächst mich über eine Schleife anzunähern und dann ggf. eine weitere Schleife einzubauen (in 0,2-Schritten o.ä.) um mich noch weiter anzunähern. Im Endeffekt war jedoch schon diese erste Schleife nicht erfolgreich (läuft endlos) und ist zudem sehr langsam (wohl wegen der vielen Berechnungsschritte im Dokument).
Sub GrundbetragGruppe1()
a = Range("P41").Value ' Näherungswert (Variabel)
b = Range("O41").Value 'Zielwert (fest)
y = 1
Do
Cells(41, "R").Value = y
y = y + 1
Loop Until b - a <= 0
End Sub
Daher drei Fragen:
- Wie kann ich die Formel heilen bzw. besser ausgestalten (habe leider kaum VBA-Erfahrung).
- Lässt sich das irgendwie beschleunigen (die in Excel hinterlegten Formeln müssen allerdings bestehen bleiben)? Bin sonst fast geneigt, den Faktor und damit Näherungswert s manuell zu bestimmen.
- Abseits davon: Irgendwann will ich mir VBA-Programmierung „ordentlich“ aneignen. Gibt es Tipps, wo man das gut und schnell lernen kann (Coursera, o.ä).
Schon einmal vielen Dank im Voraus (ich hoffe das ist nicht allzu kompliziert beschrieben)!
|