Herzlich Willkommen auf meiner Seite!

Ich poste hier in unregelmäßigen Abständen Quellcodebeispiele und Gedanken zum Thema Visual Basic for Applications (VBA) und Excel, aber auch SQL, Access, Word und anderen Programmiersprachen.

Vielleicht hast Du ein interessantes VBA- oder Excel-Problem und suchst eine Lösung. Dann schick mir doch eine Email mit allen notwendigen Informationen.

Viel Spaß,
Tobias Schmid

Excel zeigt nur die Formel, berechnet aber nicht

In der letzten Zeit hatte ich häufiger ein seltsames Erlebnis. Nach dem Eintippen einer Formel und bestätigen mit der Enter-Taste zeigte mir Excel nicht das Berechnungsergebnis sondern nur die Formel als Text. Dies passierte besonders häufig bei der Bearbeitung von dbf-Dateien. Weder die Neuberechnung mit F9 noch die Tastenkombination Strg+' haben weitergeholfen.

Ein Screenshot des Problems:

Tag 40.000

Heute ist der Tag 40.000 seit Beginn der (Excel-)Zeitrechnung. Wer heute den Befehl =TEXT(HEUTE();"#####") in eine Zelle eingibt bekommt als Rückgabe den Wert 40.000. Wenn das kein Grund zum feiern ist. ;-)

Zur Erklärung: Excel speichert das Datum als Anzahl der Tage seit dem 1.1.1900. Und somit ist heute Tag 40.000 der Excelzeitrechnung.

xy-Chart Labeler

Mit dem XY Chart Labeler können einfach Beschriftungen zu xy-Diagrammen hinzugefügt werden. Die Beschriftung aller Datenpunkte erfolgt durch Angabe eines Zellbereiches in dem die Beschriftungen stehen. Sehr einfach und komfortabel!

Hier geht's zum Download.

Größenvergleich bei Strings => Alphabetische Sortierung!

Manche Probleme sind ja so einfach zu lösen. Lange (zu lange) habe ich mir überlegt, wie man Texte (Strings) alphabetisch sortiert kann. Bis ich auf die simple Idee kam, ein Ungleichzeichen zu verwenden. Und es funktioniert!

Urlaub vorbei

Mein Urlaub ist leider schon wieder vorbei und ich kämpfe noch etwas mit dem Jetlag. Für den Blog heißt das aber auch, dass in Kürze wieder neue Einträge folgen werden.

Bis bald!
Tobias

Quicksort für zweidimensionale Datenfelder / Matrizen

Mit dieser Funktion kann in VBA ein mehrdimensionales Datenfelder oder eine Matrix nach einer bestimmten Spalte sortiert werden. Als Beispiel wird in einer Test-Funktion ein Datenfeld und ein Zellbereich mit der neuen Quicksort-Funktion sortiert. Die Option "aufsteigend/absteigend" (Parameter Descending) ist noch nicht verfügbar, lässt sich aber einfach hinzufügen.

Download der gesamten Excel-Datei

Und hier geht's zum Quellcode...

Daten einlesen mit "for each"-Schleife

Mit einer "for each"-Schleife und zwei Range-Objekten kann das Daten einlesen mit VBA sehr komfortabel sein. Es muss ja nicht immer die "For i=1 to ..."-Schleife sein:

Enumerationen für Excel-Automationen

Mit Access-VBA ist es möglich eine Excel-Instanz zu öffnen und zu bearbeiten. Dabei werden grundsätzlich zwei Varianten unterschieden "Late-Binding" und "Early-Binding". Wer schon mal mit Late-Binding gearbeitet hat kennt sicherlich das Problem, dass keine Enumerationen - also die Excel-Konstanten - vorhanden sind.

Im folgenden Video werden die Vor- und Nachteile von Late- und Early-Binding erklärt. Gleichzeitig - und das ist wirklich sehr hilfreich - wird eine Lösung für das Enumerationen-Problem angeboten.

Video
Übersicht aller Enumerationen

Smart Intender

Der Smart Intender ist ein extrem hilfreiches Tool, um VBA-Quellcode einheitlich zu gestalten.

Tabellenblätter sortieren

Mit dieser kleinen Funktion können die Tabellenblätter einer Arbeitsmappe alphabetisch sortiert werden.

Inhalt abgleichen