Excel VBA Eine Sammlung
Dies ist eine Sammlung von Excel VBA Programmen und auch einigen Excelformeln, die mir sinnvoll erschienen.
Inhaltsverzeichnis
Excel / VBA – Eine Sammlung 1
Abstract 2
Excel Lernpfad 2
Die Excel / VBA Programmierumgebung 11
Abstract 11
Grundlegendes 11
Variablen 11
Typen 11
Scope 12
Während des Editierens 12
Während der Programmausführung 13
Breakpoints 13
Fehlerbehandlung 14
Gute Programmierpraxis 15
Seien Sie ein guter Programmierer 15
Gutes Excel und VBA Wissen 15
Programmierkonventionen 15
Säubern Sie Makroaufzeichnungen 15
Dokumentieren Sie Ihr Programm ausreichend 16
Testen Sie Ihr Programm gut 16
Protokollieren Sie Ihre Programmausführung 16
Optimieren Sie Ihr Programm 16
Systemstatus sichern und zurückschreiben – SystemState Klasse 17
Systemstatus Variablen 17
Programmablauf dokumentieren – Logging Klasse 20
Für und Wider 20
Parameter 21
Beispielausgabe 22
Module 22
Klassenmodule 26
Exkurs: Logger für PowerShell – Write-Log 27
Exportiere einen Bereich als Grafik – sbExportRange2Picture 29
sbExportRange2Picture Programmcode 29
Bereichsnamen anzeigen – sbNamedRanges 32
Excel Version anzeigen – ApplicationVersion 33
Anzahl der Dimensionen eines Arrays – ArrayDim 34
Zellinformationen ausgeben – sbGetCell 35
Nächste Gleitkommazahl – sbNextFloat 39
Aufruf anderer Windows Programme am Beispiel sbZip 40
Excel Don’ts – Was man mit Excel besser sein lässt 42
Eine Tabelle mit Beispielen die man besser vermeidet 42
Zahlensysteme, Formate und Umwandlungen 43
Abstract 43
Umwandlungen und Berechnungen von Zahlen 43
Zahlen in Worten ausgeben – sbInWorten 43
Umwandlungen zwischen dem Dezimalsystem und dem Binärsystem 47
Feiertage ermitteln – IstFeiertag 52
Zahl vollständig nicht-wissenschaftlich darstellen – sbNum2Str 56
Signifikante Ziffern einer Zahl – sbNSig 57
sbNSig Program Code 57
Nummer eines Monatsnamens – sbMonatsZahl 58
Die Berechnung der Kreiszahl π 61
Pi Ausgabe auf 1000 Stellen 64
Die Berechnung der Eulerschen Zahl e 65
e Ausgabe auf 1000 Stellen 66
Literatur 67
Zahlenfolge kürzer darstellen – sbParseNumSeq 67
Rationale Zahlen = Brüche 69
Ermittle die nächstliegende rationale Zahl zu einer Gleitkommazahl – sbNRN 69
Lineare Gleichungssysteme mit rationalen Koeffizienten 72
Anteilsveränderung als Bruch 75
Monatsanteil 76
Linearkombination Ganzer Zahlen 77
Erweiterter Euklidischer Algorithmus – sbEuklid 77
Uhrzeiten 79
Arbeitszeit zwischen 2 Zeitpunkten – sbTimeDiff 79
Arbeitszeit zu einem Zeitpunkt addieren – sbTimeAdd 82
Uhrzeit für eine andere Zeitzone umwandeln – ConvertTime 85
Prüfziffern 85
Berechne oder prüfe eine Europäische Artikelnummer – sbEAN 85
Einfache Mathematik in Formeln 87
Wie man Tabellenblattformeln analysiert 87
Datumsformeln testen 88
Erster oder letzter Wochentag im Monat 90
Derselbe Wochentag und Kalenderwoche im vorigen Jahr 91
Budgetkontrolle 92
Geringste Signifikante Ziffer erhöhen 93
Linearer Breakdown 94
Füge zwei Spalten mit Blocksatz zusammen 97
Minimum Truck Load Problem 98
Nachstehende Nullen zählen 99
Minimax Interpolation 99
Interpolation mit PERZENTIL / PROZENTRANG 101
Interpolation mit TREND 103
REFA Zeitklassen 104
Rollen und Rechte 105
Rundungstricks 106
Trinkgeld Verteilung 107
Unterjährige Werte glätten 109
Zellenbasiertes Diagramm 110
Einfache VBA Programme 112
Abstract 112
Addiere Zahlen desselben Zahlenformats – sbSumMyFormat 112
Zähle Zellen mit einer bestimmten Farbe – sbCountMyColor 113
Asset Allokation für ein Portfolio – sbAllocate 114
Ausreißer Werte eliminieren – sbORB 115
Faire Verteilung eines begrenzten Budgets – sbDistBudget 117
Collatz Länge Berechnen - sbCollatz 119
Eindeutigen Rang auch bei Duplikaten vergeben – sbUniqRank 120
Eliminiere Punkte eines Graphen mit kleiner Steigungsänderung – sbReducePoints 122
Geburtstagsliste – sbBirthdayList 124
Akumuliertes Handelsblatt – sbAccumulatedTradeBlotter 126
Häufigste Paare – sbMostFrequentPairs 128
Interpolieren – sbInterp 130
Erzeuge alle Kombinationen der Subsets k von n 132
Lookup Varianten 134
Minimale Anzahl von Scheinen und Münzen für einen Geldbetrag – sbMinCash 137
Neugewichtung der Assets eines Portfolios – sbRebalancedReturn 140
Optimale Boxenstopps 142
Optimale Nutzung von Urlaubstageen 144
Rundensystem für Turnier Jeder Gegen Jeden - sbRoundRobin 146
Weiterführende Literatur 146
Zugriffsrechte prüfen 149
VBA Programme für Fortgeschrittene 151
Abstract 151
Extremwerte von Zellen speichern – sbCellWatermarks 151
Aufgabenliste – sbTaskList 153
Datenanalyse – sbDatastats 156
System Handbuch 156
Übersicht 156
Parameter im Tabellenblatt Param 157
Anwenderhandbuch 158
Zusammenfassung 158
Konfigurationsdatei FileSpecs.csv 158
NumStats Ausgabe 159
NumStatsMove Ausgabe 159
TextStats Ausgabe 159
TextStatsMove Ausgabe 159
Limits_Output Datei 160
Limits_Move_Output Datei 161
Programm Code sbDatastats 162
Modul Input_Data 162
Modul Output_Data 164
Modul Workflow 165
Gewichtberechnung 190
Sinnvolle Erweiterungen und Verallgemeinerungen 192
Minirechner 199
Finanzmathematik – Optionen 206
Das Binomialbaummodell 206
Das Trinomial-Optionspreismodell und die Methode der Finiten Differenzen 212
Monte Carlo Simulation 217
Erzeuge alle Permutationen eines Arrays – Quickperm 227
Sterblichkeitsrente 229
Komplexe Matrixformel (Schlechteste Wahl) 229
Einfache Benutzerdefinierte Funktion mit VBA (Bessere Wahl) 230
Vorkalkulierte Tabelle und eine NBW Formel (Wahrscheinlich am Besten) 230
Eine wartungsfreie Datenbenk 231
Einschränkungen 231
Verantwortlichkeiten 231
Systemdokumentation 232
Anwenderdokumentation 232
Super User mit Schreib-/Lesezugriff 232
Normaler Anwender mit nur Lesezugriff 232
Appendix – SQL Code 233
Appendix – VBA Code 236
Exkurs: Vergleiche Korrelationsmatrizen 239
Abstract 239
Implementierungsansatz 239
Parameter 239
Summenerhaltendes Runden mit RoundToSum 253
Abstract 253
Summenerhaltendes Runden 253
Beispiel für Prozentzahlen 253
Beispiel für absolute Zahlen 254
Die benutzerdefinierte VBA Funktion RoundToSum 254
RoundToSum Programmcode 255
Round2Sum Lambda-Ausdruck 256
Werte runden ändert ihre Summe 257
Anwendungsbeispiele für RoundToSum 259
Gemeinkostenumlage 259
Beispiel für ein exaktes Verhältnis von Zufallszahlen 261
Die benutzerdefinierte VBA Funktion sbExactRandHistogrm 262
Faire Mitarbeiterauswahl nach Teamgröße – sbFairStaffSelection 264
Stichprobe normalverteilen 266
Verteilung nach Restmenge 271
Ein simpler Ansatz 271
Eine korrekte Rechnung 271
Urlaub nehmen wenn weniger los ist 272
Simples Beispiel 272
Komplexeres Beispiel 273
Zuweisen von Arbeitseinheiten vermindert um geleistete 274
RoundToSum im Vergleich 275
RoundToSum im Vergleich mit anderen “einfachen” Methoden 275
RoundToSum im Vergleich zum D‘Hondt Verfahren 278
Literatur 278
Zufallszahlen erzeugen 279
Abstract 279
Ganze Zufallszahlen 279
Natürliche Zufallszahlen – UniqRandInt 279
Ganze Zufallszahlen – sbRandInt 281
Zufallszahlen mit einer festgelegten Summe 283
Minimum für die Zufallszahlen vorgegeben - sbLongRandSumN 283
Minimum und Maximum für die Zufallszahlen vorgegeben - sbRandIntFixSum 284
Praktische Anwendungen ganzer Zufallszahlen 286
Krabat – Wie alt können die Lehrlinge werden? 286
Ein Mathematiktest mit ganzen Zufallszahlen – Generate_Math_Test 287
Monte Carlo Simulation für eine faire Teamverteilung – sbGenerateTeams 289
Monte Carlo Simulation für einen Regatta Flight Plan – sbRegattaFlightPlan 293
Chancen beim Brettspiel Risiko 296
Eine simple Monte Carlo Simulation 300
Gleitkomma-Zufallszahlen 302
Eine ideale Normalverteilung – sbGenNormDist 302
Zufallszahlen mit der Summe 1 – sbRandSum1 304
Zufallsportfolio mit Gesamtsumme und Asset-Schranken – sbAllocate 306
Verteilungen von Gleitkomma-Zufallszahlen 307
sbRandGeneral 307
sbRandHistogrm 310
sbRandTriang 313
sbRandTrigen 314
sbRandCauchy 318
sbRandCDFInv 319
sbRandPDF 320
sbRandCumulative 321
Brownsche Brücken 323
sbGrowthSeries 323
Fixe Summe aus verschiedenen Zufallsbereichen 325
Korrelierte Zufallszahlen 331
Cholesky Zerlegung 331
Iman-Conover Methode 333
Praktische Anwendungen allgemeiner Zufallszahlen 340
Testdaten erzeugen – sbGenerateTestData 340
Zufallszahlen die sich nicht sofort wiederholen – sbRandomNoRepeatBeforeN 350
Exkurs 352
Wahrscheinlichkeiten berechnen – Ziehen von Karten mit und ohne Zurücklegen 352
Spaß ohne Praxisrelevanz für Fortgeschrittene 354
Eine einfache VBA Pivot Tabelle – sbMiniPivot 354
Rundenturnier-Paarungen mit Excel Tabellenblattfunktionen 357
Entwickeln einer Formellösung für ein Rundenturnier Jeder gegen Jeden 357
TEXTVERKETTEN 361
Index 362
Bitte den Haftungsausschluss im Impressum beachten.
Plumhoff_Excel_VBA_Eine_Sammlung.pdf [12,7 MB PDF Datei, ohne jegliche Gewährleistung]