Excel VBA Eine Sammlung

Dies ist eine Sammlung von Excel VBA Programmen und auch einigen Excelformeln, die mir sinnvoll erschienen.

Hinweis: Ich habe die hier vorgestellten Programme und Formeln erfolgreich mit Excel 2024 getestet.

Inhaltsverzeichnis                                                                   
                                                                                     
Excel / VBA – Eine Sammlung                                                          1
  Abstract                                                                           2
  Excel Lernpfad                                                                     2
Die Excel / VBA Programmierumgebung                                                 11
  Abstract                                                                          11
  Grundlegendes                                                                     11
    Variablen                                                                       11
      Variablentypen                                                                11
      Scope                                                                         12
    Während des Editierens                                                          12
    Während der Programmausführung                                                  13
      Breakpoints                                                                   13
      Fehlerbehandlung                                                              14
    Umgebungsvariablen                                                              15
    Gute Programmierpraxis                                                          15
      Seien Sie ein guter Programmierer                                             15
      Gutes Excel und VBA Wissen                                                    15
      Programmierkonventionen                                                       16
      Säubern Sie Makroaufzeichnungen                                               16
      Dokumentieren Sie Ihr Programm ausreichend                                    16
      Testen Sie Ihr Programm gut                                                   16
      Protokollieren Sie Ihre Programmausführung                                    16
  Laufzeit Optimieren                                                               17
    Module                                                                          17
      Normal                                                                        17
      Klassenmodule                                                                 19
  Systemstatus sichern und zurückschreiben – SystemState Klasse                     20
    Systemstatus Variablen                                                          20
  Programmablauf dokumentieren – clsLog Klasse                                      23
    Für und Wider                                                                   23
    Parameter                                                                       24
    Beispielausgabe                                                                 25
    Module                                                                          26
      Normal                                                                        26
      Klassenmodule                                                                 31
    Exkurs: Logger für PowerShell – Write-Log                                       32
  Start / Stop OneDrive Synchronisierung                                            33
  Exportiere einen Bereich als Grafik – sbExportRange2Picture                       35
  Bereichsnamen anzeigen – sbNamedRanges                                            38
  Anzahl der Dimensionen eines Arrays – ArrayDim                                    38
  Excel Version anzeigen – ApplicationVersion                                       39
  Zellinformationen ausgeben – sbGetCell                                            40
  Nächste Gleitkommazahl – sbNextFloat                                              46
  Aufruf anderer Windows Programme am Beispiel sbZip                                47
  Excel Don’ts – Was man mit Excel besser sein lässt                                49
    Eine Tabelle mit Beispielen die man besser vermeidet                            49
Zahlensysteme, Formate und Umwandlungen                                             50
  Abstract                                                                          50
  Umwandlungen und Berechnungen von Zahlen                                          50
    Zahlen in Worten ausgeben – sbInWorten                                          50
    Umwandlungen zwischen dem Dezimalsystem und dem Binärsystem                     54
    Feiertage ermitteln – IstFeiertag                                               59
    Zahl vollständig nicht-wissenschaftlich darstellen – sbNum2Str                  63
    Signifikante Ziffern einer Zahl – sbNSig                                        64
    Nummer eines Monatsnamens – sbMonatsZahl                                        65
    Die Berechnung der Kreiszahl π                                                  68
      Pi Ausgabe auf 1000 Stellen                                                   71
    Die Berechnung der Eulerschen Zahl e                                            72
      e Ausgabe auf 1000 Stellen                                                    73
    Literatur                                                                       74
    Zahlenfolge kürzer darstellen – sbParseNumSeq                                   74
  Rationale Zahlen = Brüche                                                         76
    Ermittle die nächstliegende rationale Zahl zu einer Gleitkommazahl – sbNRN      76
    Lineare Gleichungssysteme mit rationalen Koeffizienten                          79
    Anteilsveränderung als Bruch                                                    82
    Monatsanteil                                                                    83
  Linearkombination Ganzer Zahlen                                                   84
    Erweiterter Euklidischer Algorithmus – sbEuklid                                 84
  Uhrzeiten                                                                         86
    Arbeitszeit zwischen 2 Zeitpunkten – sbTimeDiff                                 86
    Arbeitszeit zu einem Zeitpunkt addieren – sbTimeAdd                             89
    Uhrzeit für eine andere Zeitzone umwandeln – ConvertTime                        92
  Prüfziffern                                                                       92
    Berechne oder prüfe eine Europäische Artikelnummer – sbEAN                      92
  Ordinalzahlen (englisch)                                                          93
Einfache Mathematik in Formeln                                                      94
  Wie man Tabellenblattformeln analysiert                                           94
  Datumsformeln testen                                                              95
  Erster oder letzter Wochentag im Monat                                            97
  Derselbe Wochentag und Kalenderwoche im vorigen Jahr                              98
  Budgetkontrolle                                                                   99
  Geringste Signifikante Ziffer erhöhen                                            100
  Linearer Breakdown                                                               101
  Füge zwei Spalten mit Blocksatz zusammen                                         104
  Minimum Truck Load Problem                                                       105
  Nachstehende Nullen zählen                                                       106
  Minimax Interpolation                                                            106
  Interpolation mit PERZENTIL / PROZENTRANG                                        108
  Interpolation mit TREND                                                          110
  REFA Zeitklassen                                                                 111
  Rollen und Rechte                                                                112
  Rundungstricks                                                                   113
  Trinkgeld Verteilung                                                             114
  Unterjährige Werte glätten                                                       116
  Zellenbasiertes Diagramm                                                         117
Einfache VBA Programme                                                             119
  Abstract                                                                         119
  Addiere Zahlen desselben Zahlenformats – sbSumMyFormat                           119
  Zähle Zellen mit einer bestimmten Farbe – sbCountMyColor                         120
  Asset Allokation für ein Portfolio – sbAllocate                                  121
  Ausreißer Werte eliminieren – sbORB                                              122
  Faire Verteilung eines begrenzten Budgets – sbDistBudget                         124
  Collatz Länge Berechnen - sbCollatz                                              126
  Eindeutigen Rang auch bei Duplikaten vergeben – sbUniqRank                       127
  Eliminiere Punkte eines Graphen mit kleiner Steigungsänderung – sbReducePoints   129
  Geburtstagsliste – sbBirthdayList                                                131
  Akumuliertes Handelsblatt – sbAccumulatedTradeBlotter                            133
  Häufigste Paare – sbMostFrequentPairs                                            135
  Interpolieren – sbInterp                                                         137
  Erzeuge alle Kombinationen der Subsets k von n                                   139
  Lookup Varianten                                                                 141
  Minimale Anzahl von Scheinen und Münzen für einen Geldbetrag – sbMinCash         144
  Neugewichtung der Assets eines Portfolios – sbRebalancedReturn                   147
  Optimale Boxenstopps                                                             149
  Optimale Nutzung von Urlaubstageen                                               151
  Rundensystem für Turnier Jeder Gegen Jeden - sbRoundRobin                        153
  Zugriffsrechte prüfen                                                            156
VBA Programme für Fortgeschrittene                                                 159
  Abstract                                                                         159
  Mitarbeiter Umsatzanteile                                                        159
  Extremwerte von Zellen speichern – sbCellWatermarks                              165
  Aufgabenliste – sbTaskList                                                       167
  Zahlungseingangsproblem                                                          170
  Datenanalyse – sbDatastats                                                       173
    System Handbuch                                                                173
      Übersicht                                                                    173
      Parameter im Tabellenblatt Param                                             174
    Anwenderhandbuch                                                               175
      Zusammenfassung                                                              175
      Konfigurationsdatei FileSpecs.csv                                            175
      NumStats Ausgabe                                                             176
      NumStatsMove Ausgabe                                                         176
      TextStats Ausgabe                                                            176
      TextStatsMove Ausgabe                                                        176
      Limits_Output Datei                                                          177
      Limits_Move_Output Datei                                                     178
  Gewichtberechnung                                                                208
    Sinnvolle Erweiterungen und Verallgemeinerungen                                210
  Lotto k-Tupel                                                                    217
  Minirechner                                                                      220
  Sterblichkeitsrente                                                              227
    Komplexe Matrixformel (Schlechteste Wahl)                                      227
    Einfache Benutzerdefinierte Funktion mit VBA (Bessere Wahl)                    228
    Vorkalkulierte Tabelle und eine NBW Formel (Wahrscheinlich am Besten)          228
  Finanzmathematik – Optionen                                                      229
    Das Binomialbaummodell                                                         229
    Das Trinomial-Optionspreismodell und die Methode der Finiten Differenzen       235
    Monte Carlo Simulation                                                         241
  Erzeuge alle Permutationen eines Arrays – Quickperm                              251
  Eine wartungsfreie Datenbenk                                                     253
    Einschränkungen                                                                253
    Verantwortlichkeiten                                                           253
    Systemdokumentation                                                            254
    Anwenderdokumentation                                                          254
      Super User mit Schreib-/Lesezugriff                                          254
      Normaler Anwender nur mit Lesezugriff                                        254
    Appendix – SQL Code                                                            255
    Appendix – VBA Code                                                            258
  Exkurs: Vergleiche Korrelationsmatrizen                                          261
    Abstract                                                                       261
    Implementierungsansatz                                                         261
    Parameter                                                                      261
Summenerhaltendes Runden mit RoundToSum                                            275
  Abstract                                                                         275
  Summenerhaltendes Runden                                                         275
    Beispiel für Prozentzahlen                                                     275
    Beispiel für absolute Zahlen                                                   276
  Die benutzerdefinierte VBA Funktion RoundToSum                                   276
  RoundToSum Programmcode                                                          277
  Round2Sum Lambda-Ausdruck                                                        278
  Werte runden ändert ihre Summe                                                   279
  Anwendungsbeispiele für RoundToSum                                               281
    Gemeinkostenumlage                                                             281
    Beispiel für ein exaktes Verhältnis von Zufallszahlen                          283
      Die benutzerdefinierte VBA Funktion sbExactRandHistogrm                      284
    Faire Mitarbeiterauswahl nach Teamgröße – sbFairStaffSelection                 286
    Stichprobe normalverteilen                                                     288
    Verteilung nach Restmenge                                                      293
      Ein simpler Ansatz                                                           293
      Eine korrekte Rechnung                                                       293
    Urlaub nehmen wenn weniger los ist                                             294
      Simples Beispiel                                                             294
      Komplexeres Beispiel                                                         295
    Zuweisen von Arbeitseinheiten vermindert um geleistete                         296
  RoundToSum im Vergleich                                                          297
    RoundToSum im Vergleich mit anderen “einfachen” Methoden                       297
    RoundToSum im Vergleich zum D‘Hondt Verfahren                                  300
  Literatur                                                                        300
Zufallszahlen erzeugen                                                             301
  Abstract                                                                         301
  Ganze Zufallszahlen                                                              301
    Natürliche Zufallszahlen – UniqRandInt                                         301
    Ganze Zufallszahlen – sbRandInt                                                303
    Zufallszahlen mit einer festgelegten Summe                                     305
      Minimum für die Zufallszahlen vorgegeben - sbLongRandSumN                    305
      Minimum und Maximum für die Zufallszahlen vorgegeben - sbRandIntFixSum       306
  Praktische Anwendungen ganzer Zufallszahlen                                      308
    Krabat – Wie alt können die Lehrlinge werden?                                  308
    Ein Mathematiktest mit ganzen Zufallszahlen – Generate_Math_Test               309
    Monte Carlo Simulation für eine faire Teamverteilung – sbGenerateTeams         311
    Monte Carlo Simulation für einen Regatta Flight Plan – sbRegattaFlightPlan     315
    Chancen beim Brettspiel Risiko                                                 318
    Eine simple Monte Carlo Simulation                                             322
  Gleitkomma-Zufallszahlen                                                         324
    Eine ideale Normalverteilung – sbGenNormDist                                   324
    Zufallszahlen mit der Summe 1 – sbRandSum1                                     326
    Verteilungen von Gleitkomma-Zufallszahlen                                      328
      sbRandGeneral                                                                328
      sbRandHistogrm                                                               331
      sbRandTriang                                                                 334
      sbRandTrigen                                                                 335
      sbRandCauchy                                                                 339
      sbRandCDFInv                                                                 340
      sbRandPDF                                                                    341
      sbRandCumulative                                                             342
    Brownsche Brücken                                                              344
      sbGrowthSeries                                                               344
      Fixe Summe aus verschiedenen Zufallsbereichen                                346
  Korrelierte Zufallszahlen                                                        348
    Cholesky Zerlegung                                                             348
    Iman-Conover Methode                                                           350
  Praktische Anwendungen allgemeiner Zufallszahlen                                 357
    Testdaten erzeugen – sbGenerateTestData                                        357
    Zufallszahlen die sich nicht sofort wiederholen – sbRandomNoRepeatBeforeN      367
  Exkurs                                                                           369
    Wahrscheinlichkeiten berechnen – Ziehen von Karten mit und ohne Zurücklegen    369
Spaß ohne Praxisrelevanz für Fortgeschrittene                                      370
  Eine einfache VBA Pivot Tabelle – sbMiniPivot                                    370
  Rundenturnier-Paarungen mit Excel Tabellenblattfunktionen                        373
    Entwickeln einer Formellösung für ein Rundenturnier Jeder gegen Jeden          373
  TEXTVERKETTEN                                                                    377
Index                                                                              378

Bitte den Haftungsausschluss im Impressum beachten.

Plumhoff_Excel_VBA_Eine_Sammlung.pdf [13,0 MB PDF Datei, ohne jegliche Gewährleistung]

Auszug über das summenerhaltende Runden:

Plumhoff_Summenerhaltendes_Runden.pdf [3,1 MB PDF Datei, ohne jegliche Gewährleistung]

Auszug über die Erzeugung von Zufallszahlen:

Plumhoff_Zufallszahlen_erzeugen_mit_Excel_VBA.pdf [12,3 MB PDF Datei, ohne jegliche Gewährleistung]