“Excel-Tabellen gehören wahrscheinlich zu den gefährlichsten Erfindungen der letzten Jahrzehnte.” [Rolf Dobelli]

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 / 365 getestet.

Inhaltsverzeichnis                                                                   
                                                                                     
Excel / VBA – Eine Sammlung                                                          1
  Abstract                                                                           2
  Excel Lernpfad                                                                     2
Die Excel / VBA Programmierumgebung                                                 10
  Abstract                                                                          10
  Grundlegendes                                                                     10
    Variablen                                                                       10
      Variablentypen                                                                10
      Scope                                                                         11
    Während des Editierens                                                          11
    Während der Programmausführung                                                  12
      Breakpoints                                                                   12
      Fehlerbehandlung                                                              13
    Umgebungsvariablen                                                              14
    Gute Programmierpraxis                                                          14
      Seien Sie ein guter Programmierer                                             14
      Gutes Excel und VBA Wissen                                                    14
      Programmierkonventionen                                                       15
      Säubern Sie Makroaufzeichnungen                                               15
      Dokumentieren Sie Ihr Programm ausreichend                                    15
      Testen Sie Ihr Programm gut                                                   15
      Protokollieren Sie Ihre Programmausführung                                    15
  Laufzeit Optimieren                                                               16
  Systemstatus sichern und zurückschreiben – SystemState Klasse                     17
    Systemstatus Variablen                                                          17
  Programmablauf dokumentieren – clsLog Klasse                                      20
    Für und Wider                                                                   20
    Parameter                                                                       21
    Beispielausgabe                                                                 22
    Module                                                                          22
    Klassenmodule                                                                   26
  Start / Stop OneDrive Synchronisierung                                            28
  Exportiere einen Bereich als Grafik – sbExportRange2Picture                       30
  Bereichsnamen anzeigen – sbNamedRanges                                            33
  Anzahl der Dimensionen eines Arrays – ArrayDim                                    33
  Excel Version anzeigen – ApplicationVersion                                       34
  Zellinformationen ausgeben – sbGetCell                                            35
  Nächste Gleitkommazahl – sbNextFloat                                              41
  Aufruf anderer Windows Programme am Beispiel sbZip                                42
  Excel Don’ts – Was man mit Excel besser sein lässt                                44
    Eine Tabelle mit Beispielen die man besser vermeidet                            44
Zahlensysteme, Formate und Umwandlungen                                             45
  Abstract                                                                          45
  Umwandlungen und Berechnungen von Zahlen                                          45
    Zahlen in Worten ausgeben – sbInWorten                                          45
    Umwandlungen zwischen dem Dezimalsystem und dem Binärsystem                     49
    Feiertage ermitteln – IstFeiertag                                               54
    Signifikante Ziffern einer Zahl – sbNSig                                        58
    Nummer eines Monatsnamens – sbMonatsZahl                                        59
    Die Berechnung der Kreiszahl π                                                  62
      Pi Ausgabe auf 1000 Stellen                                                   65
    Die Berechnung der Eulerschen Zahl e                                            66
      e Ausgabe auf 1000 Stellen                                                    67
    Literatur                                                                       68
    Zahlenfolge kürzer darstellen – sbParseNumSeq                                   68
  Rationale Zahlen = Brüche                                                         70
    Ermittle die nächstliegende rationale Zahl zu einer Gleitkommazahl – sbNRN      70
    Lineare Gleichungssysteme mit rationalen Koeffizienten                          73
    Anteilsveränderung als Bruch                                                    76
    Monatsanteil                                                                    77
  Linearkombination Ganzer Zahlen                                                   78
    Erweiterter Euklidischer Algorithmus – sbEuklid                                 78
  Uhrzeiten                                                                         80
    Arbeitszeit zwischen 2 Zeitpunkten – sbTimeDiff                                 80
    Arbeitszeit zu einem Zeitpunkt addieren – sbTimeAdd                             83
    Uhrzeit für eine andere Zeitzone umwandeln – ConvertTime                        86
  Prüfziffern                                                                       86
    Berechne oder prüfe eine Europäische Artikelnummer – sbEAN                      86
  Ordinalzahlen (englisch)                                                          87
Einfache Mathematik in Formeln                                                      88
  Wie man Tabellenblattformeln analysiert                                           88
  Datumsformeln testen                                                              89
  Erster oder letzter Wochentag im Monat                                            91
  Derselbe Wochentag und Kalenderwoche im vorigen Jahr                              92
  Budgetkontrolle                                                                   93
  Geringste Signifikante Ziffer erhöhen                                             94
  Linearer Breakdown                                                                95
  Füge zwei Spalten mit Blocksatz zusammen                                          98
  Minimum Truck Load Problem                                                        99
  Nachstehende Nullen zählen                                                        99
  Minimax Interpolation                                                            100
  Rollen und Rechte                                                                102
  Rundungstricks                                                                   103
  Trinkgeld Verteilung                                                             104
  Unterjährige Werte glätten                                                       106
  Zellenbasiertes Diagramm                                                         107
Einfache VBA Programme                                                             109
  Abstract                                                                         109
  Addiere Zahlen desselben Zahlenformats – sbSumMyFormat                           109
  Zähle Zellen mit einer bestimmten Farbe – sbCountMyColor                         110
  Asset Allokation für ein Portfolio – sbAllocate                                  111
  Ausreißer Werte eliminieren – sbORB                                              112
  Faire Verteilung eines begrenzten Budgets – sbDistBudget                         114
  Collatz Länge Berechnen - sbCollatz                                              116
  Eindeutigen Rang auch bei Duplikaten vergeben – sbUniqRank                       117
  Eliminiere Punkte eines Graphen mit kleiner Steigungsänderung – sbReducePoints   119
  Geburtstagsliste – sbBirthdayList                                                121
  Häufigste Paare – sbMostFrequentPairs                                            123
  Interpolieren – sbInterp                                                         125
  Erzeuge alle Kombinationen der Subsets k von n                                   127
  Lookup Varianten                                                                 129
  Minimale Anzahl von Scheinen und Münzen für einen Geldbetrag – sbMinCash         131
  Neugewichtung der Assets eines Portfolios – sbRebalancedReturn                   134
  Optimale Boxenstopps                                                             136
  Optimale Nutzung von Urlaubstageen                                               138
  Rundensystem für Turnier Jeder Gegen Jeden - sbRoundRobin                        140
  Zugriffsrechte prüfen                                                            143
VBA Programme für Fortgeschrittene                                                 146
  Abstract                                                                         146
  Mitarbeiter Umsatzanteile                                                        146
  Extremwerte von Zellen speichern – sbCellWatermarks                              151
  Aufgabenliste – sbTaskList                                                       153
  Zahlungseingangsproblem                                                          156
  Lotto k-Tupel                                                                    159
  Sterblichkeitsrente                                                              162
    Komplexe Matrixformel (Schlechteste Wahl)                                      162
    Einfache Benutzerdefinierte Funktion mit VBA (Bessere Wahl)                    163
    Vorkalkulierte Tabelle und eine NBW Formel (Wahrscheinlich am Besten)          163
  Finanzmathematik – Optionen                                                      164
    Das Binomialbaummodell                                                         164
    Das Trinomial-Optionspreismodell und die Methode der Finiten Differenzen       170
    Monte Carlo Simulation                                                         176
  Erzeuge alle Permutationen eines Arrays – Quickperm                              186
Summenerhaltendes Runden mit RoundToSum                                            188
  Abstract                                                                         188
  Summenerhaltendes Runden                                                         188
    Beispiel für Prozentzahlen                                                     188
    Beispiel für absolute Zahlen                                                   189
  Die benutzerdefinierte VBA Funktion RoundToSum                                   189
  RoundToSum Programmcode                                                          190
  Round2Sum Lambda-Ausdruck                                                        191
  Laufzeiten                                                                       192
  Werte runden ändert ihre Summe                                                   193
  Wieviele Summanden müssen im Mittel 'falsch' gerundet werden?                    195
  Anwendungsbeispiele für RoundToSum                                               197
    Gemeinkostenumlage                                                             197
    Beispiel für ein exaktes Verhältnis von Zufallszahlen                          199
      Die benutzerdefinierte VBA Funktion sbExactRandHistogrm                      200
    Faire Mitarbeiterauswahl nach Teamgröße – sbFairStaffSelection                 202
    Stichprobe normalverteilen                                                     204
    Verteilung nach Restmenge                                                      209
      Ein einfacher Ansatz                                                         209
      Eine korrekte Rechnung                                                       209
    Urlaub nehmen wenn weniger los ist                                             210
      Einfaches Beispiel                                                           210
      Komplexeres Beispiel                                                         211
    Zuweisen von Arbeitseinheiten vermindert um geleistete                         212
  RoundToSum im Vergleich                                                          213
    RoundToSum im Vergleich mit anderen 'einfachen' Methoden                       213
    RoundToSum im Vergleich zum D‘Hondt Verfahren                                  216
  Literatur                                                                        216
Zufallszahlen erzeugen                                                             217
  Abstract                                                                         217
  Ganze Zufallszahlen                                                              217
    Natürliche Zufallszahlen – UniqRandInt                                         217
    Ganze Zufallszahlen – sbRandInt                                                219
    Zufallszahlen mit einer festgelegten Summe                                     221
      Minimum für die Zufallszahlen vorgegeben - sbLongRandSumN                    221
      Minimum und Maximum für die Zufallszahlen vorgegeben - sbRandIntFixSum       222
  Praktische Anwendungen ganzer Zufallszahlen                                      224
    Krabat – Wie alt können die Lehrlinge werden?                                  224
    Ein Mathematiktest mit ganzen Zufallszahlen – Generate_Math_Test               225
    Monte Carlo Simulation für eine faire Teamverteilung – sbGenerateTeams         227
    Monte Carlo Simulation für einen Regatta Flight Plan – sbRegattaFlightPlan     231
    Chancen beim Brettspiel Risiko                                                 234
    Eine simple Monte Carlo Simulation                                             238
  Gleitkomma-Zufallszahlen                                                         240
    Eine ideale Normalverteilung – sbGenNormDist                                   240
    Zufallszahlen mit der Summe 1 – sbRandSum1                                     242
    Verteilungen von Gleitkomma-Zufallszahlen                                      244
      sbRandGeneral                                                                244
      sbRandHistogrm                                                               247
      sbRandTriang                                                                 250
      sbRandTrigen                                                                 251
    Brownsche Brücken                                                              255
      sbGrowthSeries                                                               255
      Fixe Summe aus verschiedenen Zufallsbereichen                                257
  Korrelierte Zufallszahlen                                                        259
    Cholesky Zerlegung                                                             259
    Iman-Conover Methode                                                           261
  Praktische Anwendungen allgemeiner Zufallszahlen                                 268
    Testdaten erzeugen – sbGenerateTestData                                        268
    Zufallszahlen die sich nicht sofort wiederholen – sbRandomNoRepeatBeforeN      278
  Exkurs                                                                           280
    Wahrscheinlichkeiten berechnen – Ziehen von Karten mit und ohne Zurücklegen    280
Spaß ohne Praxisrelevanz für Fortgeschrittene                                      281
  Eine einfache VBA Pivot Tabelle – sbMiniPivot                                    281
  Rundenturnier-Paarungen mit Excel Tabellenblattfunktionen                        284
    Entwickeln einer Formellösung für ein Rundenturnier Jeder gegen Jeden          284
  TEXTVERKETTEN                                                                    288
Index                                                                              289

Bitte den Haftungsausschluss im Impressum beachten.

Plumhoff_Excel_VBA_Eine_Sammlung.pdf [10,6 MB PDF Datei, ohne jegliche Gewährleistung]

Auszug über das summenerhaltende Runden:

Plumhoff_Summenerhaltendes_Runden.pdf [1,5 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]