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
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
Start / Stop OneDrive Synchronization	29
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
Zahl vollständig nicht-wissenschaftlich darstellen – sbNum2Str	58
Signifikante Ziffern einer Zahl – sbNSig	59
Nummer eines Monatsnamens – sbMonatsZahl	60
Die Berechnung der Kreiszahl π	63
Pi Ausgabe auf 1000 Stellen	66
Die Berechnung der Eulerschen Zahl e	67
e Ausgabe auf 1000 Stellen	68
Literatur	69
Zahlenfolge kürzer darstellen – sbParseNumSeq	69
Rationale Zahlen = Brüche	71
Ermittle die nächstliegende rationale Zahl zu einer Gleitkommazahl – sbNRN	71
Lineare Gleichungssysteme mit rationalen Koeffizienten	74
Anteilsveränderung als Bruch	77
Monatsanteil	78
Linearkombination Ganzer Zahlen	79
Erweiterter Euklidischer Algorithmus – sbEuklid	79
Uhrzeiten	81
Arbeitszeit zwischen 2 Zeitpunkten – sbTimeDiff	81
Arbeitszeit zu einem Zeitpunkt addieren – sbTimeAdd	84
Uhrzeit für eine andere Zeitzone umwandeln – ConvertTime	87
Prüfziffern	87
Berechne oder prüfe eine Europäische Artikelnummer – sbEAN	87
Ordinalzahlen (englisch)	88
Einfache Mathematik in Formeln	89
Wie man Tabellenblattformeln analysiert	89
Datumsformeln testen	90
Erster oder letzter Wochentag im Monat	92
Derselbe Wochentag und Kalenderwoche im vorigen Jahr	93
Budgetkontrolle	94
Geringste Signifikante Ziffer erhöhen	95
Linearer Breakdown	96
Füge zwei Spalten mit Blocksatz zusammen	99
Minimum Truck Load Problem	100
Nachstehende Nullen zählen	101
Minimax Interpolation	101
Interpolation mit PERZENTIL / PROZENTRANG	103
Interpolation mit TREND	105
REFA Zeitklassen	106
Rollen und Rechte	107
Rundungstricks	108
Trinkgeld Verteilung	109
Unterjährige Werte glätten	111
Zellenbasiertes Diagramm	112
Einfache VBA Programme	114
Abstract	114
Addiere Zahlen desselben Zahlenformats – sbSumMyFormat	114
Zähle Zellen mit einer bestimmten Farbe – sbCountMyColor	115
Asset Allokation für ein Portfolio – sbAllocate	116
Ausreißer Werte eliminieren – sbORB	117
Faire Verteilung eines begrenzten Budgets – sbDistBudget	119
Collatz Länge Berechnen - sbCollatz	121
Eindeutigen Rang auch bei Duplikaten vergeben – sbUniqRank	122
Eliminiere Punkte eines Graphen mit kleiner Steigungsänderung – sbReducePoints	124
Geburtstagsliste – sbBirthdayList	126
Akumuliertes Handelsblatt – sbAccumulatedTradeBlotter	128
Häufigste Paare – sbMostFrequentPairs	130
Interpolieren – sbInterp	132
Erzeuge alle Kombinationen der Subsets k von n	134
Lookup Varianten	136
Minimale Anzahl von Scheinen und Münzen für einen Geldbetrag – sbMinCash	139
Neugewichtung der Assets eines Portfolios – sbRebalancedReturn	142
Optimale Boxenstopps	144
Optimale Nutzung von Urlaubstageen	146
Rundensystem für Turnier Jeder Gegen Jeden - sbRoundRobin	148
Zugriffsrechte prüfen	151
VBA Programme für Fortgeschrittene	153
Abstract	153
Mitarbeiter Umsatzanteile	153
Extremwerte von Zellen speichern – sbCellWatermarks	158
Aufgabenliste – sbTaskList	160
Zahlungseingangsproblem	163
Datenanalyse – sbDatastats	166
System Handbuch	166
Übersicht	166
Parameter im Tabellenblatt Param	167
Anwenderhandbuch	168
Zusammenfassung	168
Konfigurationsdatei FileSpecs.csv	168
NumStats Ausgabe	169
NumStatsMove Ausgabe	169
TextStats Ausgabe	169
TextStatsMove Ausgabe	169
Limits_Output Datei	170
Limits_Move_Output Datei	171
Gewichtberechnung	201
Sinnvolle Erweiterungen und Verallgemeinerungen	203
Lotto k-Tupel	210
Minirechner	213
Sterblichkeitsrente	220
Komplexe Matrixformel (Schlechteste Wahl)	220
Einfache Benutzerdefinierte Funktion mit VBA (Bessere Wahl)	221
Vorkalkulierte Tabelle und eine NBW Formel (Wahrscheinlich am Besten)	221
Finanzmathematik – Optionen	222
Das Binomialbaummodell	222
Das Trinomial-Optionspreismodell und die Methode der Finiten Differenzen	228
Monte Carlo Simulation	234
Erzeuge alle Permutationen eines Arrays – Quickperm	244
Eine wartungsfreie Datenbenk	246
Einschränkungen	246
Verantwortlichkeiten	246
Systemdokumentation	247
Anwenderdokumentation	247
Super User mit Schreib-/Lesezugriff	247
Normaler Anwender mit nur Lesezugriff	247
Appendix – SQL Code	248
Appendix – VBA Code	251
Exkurs: Vergleiche Korrelationsmatrizen	254
Abstract	254
Implementierungsansatz	254
Parameter	254
Summenerhaltendes Runden mit RoundToSum	268
Abstract	268
Summenerhaltendes Runden	268
Beispiel für Prozentzahlen	268
Beispiel für absolute Zahlen	269
Die benutzerdefinierte VBA Funktion RoundToSum	269
RoundToSum Programmcode	270
Round2Sum Lambda-Ausdruck	271
Werte runden ändert ihre Summe	272
Anwendungsbeispiele für RoundToSum	274
Gemeinkostenumlage	274
Beispiel für ein exaktes Verhältnis von Zufallszahlen	276
Die benutzerdefinierte VBA Funktion sbExactRandHistogrm	277
Faire Mitarbeiterauswahl nach Teamgröße – sbFairStaffSelection	279
Stichprobe normalverteilen	281
Verteilung nach Restmenge	286
Ein simpler Ansatz	286
Eine korrekte Rechnung	286
Urlaub nehmen wenn weniger los ist	287
Simples Beispiel	287
Komplexeres Beispiel	288
Zuweisen von Arbeitseinheiten vermindert um geleistete	289
RoundToSum im Vergleich	290
RoundToSum im Vergleich mit anderen “einfachen” Methoden	290
RoundToSum im Vergleich zum D‘Hondt Verfahren	293
Literatur	293
Zufallszahlen erzeugen	294
Abstract	294
Ganze Zufallszahlen	294
Natürliche Zufallszahlen – UniqRandInt	294
Ganze Zufallszahlen – sbRandInt	296
Zufallszahlen mit einer festgelegten Summe	298
Minimum für die Zufallszahlen vorgegeben - sbLongRandSumN	298
Minimum und Maximum für die Zufallszahlen vorgegeben - sbRandIntFixSum	299
Praktische Anwendungen ganzer Zufallszahlen	301
Krabat – Wie alt können die Lehrlinge werden?	301
Ein Mathematiktest mit ganzen Zufallszahlen – Generate_Math_Test	302
Monte Carlo Simulation für eine faire Teamverteilung – sbGenerateTeams	304
Monte Carlo Simulation für einen Regatta Flight Plan – sbRegattaFlightPlan	308
Chancen beim Brettspiel Risiko	311
Eine simple Monte Carlo Simulation	315
Gleitkomma-Zufallszahlen	317
Eine ideale Normalverteilung – sbGenNormDist	317
Zufallszahlen mit der Summe 1 – sbRandSum1	319
Verteilungen von Gleitkomma-Zufallszahlen	321
sbRandGeneral	321
sbRandHistogrm	324
sbRandTriang	327
sbRandTrigen	328
sbRandCauchy	332
sbRandCDFInv	333
sbRandPDF	334
sbRandCumulative	335
Brownsche Brücken	337
sbGrowthSeries	337
Fixe Summe aus verschiedenen Zufallsbereichen	339
Korrelierte Zufallszahlen	341
Cholesky Zerlegung	341
Iman-Conover Methode	343
Praktische Anwendungen allgemeiner Zufallszahlen	350
Testdaten erzeugen – sbGenerateTestData	350
Zufallszahlen die sich nicht sofort wiederholen – sbRandomNoRepeatBeforeN	360
Exkurs	362
Wahrscheinlichkeiten berechnen – Ziehen von Karten mit und ohne Zurücklegen	362
Spaß ohne Praxisrelevanz für Fortgeschrittene	363
Eine einfache VBA Pivot Tabelle – sbMiniPivot	363
Rundenturnier-Paarungen mit Excel Tabellenblattfunktionen	366
Entwickeln einer Formellösung für ein Rundenturnier Jeder gegen Jeden	366
TEXTVERKETTEN	370
Index	371

Bitte den Haftungsausschluss im Impressum beachten.

Plumhoff_Excel_VBA_Eine_Sammlung.pdf [12,9 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]