Stolperstein Formatierung in UserForm TextBox

In programmierten Formularen (UserForm) kommen häufig Eingabefelder in Form einer TextBox zur Anwendung. Meistens sollen die darüber eingegebenen Werte umgehend weiter verarbeitet werden. Und hier gilt es ggf. gleich von Beginn an Fehler zu vermeiden. Der Inhalt einer TextBox wird nämlich ohne weiteres Eingreifen grundsätzlich immer als String behandelt. Sollen in einer TextBox jedoch Zahlen erfasst werden, die anschließend zum Beispiel miteinander verglichen oder summiert werden sollen, müssen diese zuvor umformatiert werden.

Was passiert, wenn die Inhalte der TextBox-Felder nicht formatiert werden? Den Fehler wird man unter Umständen nicht sofort merken.

TextBox Eingabefelder in Userform

Unterschiede in der Sortierung von Texten und Zahlen:
Angenommen Sie haben eine UserForm in der die Eingabe einer Zahl “von” und einer Zahl “bis” erfolgen soll. Anschließend möchten Sie prüfen, ob die Eingabe korrekt erfolgt ist, also die Zahl “von” wirklich kleiner als die Zahl “bis” ist.

Weiterlesen

 

Mit VBA nach Datum filtern

Datum filtern

Ziemlich banal ist eigentlich der heutige VBA Tipp. Allerdings ist das Internet voll von Fragen zu diesem Thema. Und die Lösungsvorschläge funktionieren mal besser, mal schlechter. Meistens sind es improvisierte Ideen, die das eigentliche Problem umgehen (z.B. Umformatieren in einen String etc.). Die Lösung dieses alltäglichen Problems bereit daher offensichtlich so manches Kopfzerbrechen. Gerade auch deshalb weil der Makro Rekorder das Problem nicht lösen kann. Gemeint ist das Ansteuern eines Autofilters über ein VBA Makro wenn eine Datumsspalte gefiltert werden soll. Nachfolgend stelle ich Ihnen jeweils einen passenden VBA Code vor um eine Datumsspalte nach den gängien Varianten:

  • Datum ist gleich
  • Datum ist größer als
  • Datum ist kleiner als
  • Datum liegt zwischen
  • Datum ist größer als das aktuelle Tagesdatum
VBA Makro Lösung

Grundsätzlich ist bei den nachfolgenden Beispielen zu beachten, dass die zu filternde Spalte im Datumsformat “TT.MM.JJJJ” vorliegen muss. Ggf. können Sie die Spalte umformatieren, wenn ein anderes Format vorliegt. Sofern eine andere Datums-Variante genutzt werden soll, sind die Makros entsprechend anzupassen. Für die jeweiligen Beispiele wurde das Datum in eine Variable (Datum, Datum1, Datum2) vom Datentyp “Date” gespeichert. Sie können natürlich auch eine Inputbox, einen Zellwert oder ähnliches als Grundlage für die Filterfunktion verwenden.

Weiterlesen

 

Laufen Excel Makros auf Smartphone und Tablet Apps?

Inzwischen erhalte ich vermehrt Anfragen zu Makros die z.B. auf iOS-Systemen wie dem iPhone oder dem iPad von Apple laufen sollen. Das Smartphone wandelt sich immer mehr zum mobilen Büro. Emails checken und im Internet surfen ist längst üblich. In vielen Unternehmen werden inzwischen auch Office Anwendungen auf mobilen Geräten genutzt.

Aufgrund der Preisentwicklungen auf dem Mobilfunkmarkt auch kein Wunder. Inzwischen gibt es für unter 10 Euro eine Allnet-Flat in alle Mobilfunknetze und das Festnetz, sowie einer 3 GB Internet-Flatrate (z.B. Tarif LTE2000 bei www.deutschlandsim.de). Und das Beste bei diesen Angeboten, inzwischen gibt es sie ohne sich für 24 Monate binden zu müssen. Mindestlaufzeit 1 Monat! Sobald mein 24-Monate-Knebelvertrag im Januar 2016 ausläuft, werde ich mir auch einen monatlich kündbaren Tarif sichern.

Excel Makros auf Smartphones und Tablets nutzen

Aber zurück zu den Anfragen bezüglich Makros, die auf dem Smartphone oder Tablet laufen sollen. Aktuell entwickle ich ausschließlich Makros, die mit Windows Betriebssystemen garantiert kompatibel sind.

VBA Unterstützung in alternativen Office Programmen

Bei anderen Betriebssystemen und alternativen Office-Anwendungen wie z.B. WPS Office, LibreOffice oder Open Office kann die Unterstützung von VBA nicht immer hundertprozentig gegeben sein. Ebenfalls problematisch ist die VBA Unterstützung für Microsoft Office für Mac. Hintergrund ist, dass in unterschiedlichen Office Versionen verschiedene VBA Befehle unterstützt werden. In vielen Fällen liegt das an unterschiedlichen Objekt-Bibliotheken.

Hier kann beim nachträglichen Einbinden der notwendigen Objekt-Bibliotheken die Funktion des Makros ggf. noch gerettet werden. In einigen Fällen müssen jedoch auch VBA Routinen umgeschrieben und in unterschiedlichen Systemen getestet werden. Anfragen zu Programmieraufträgen für iOS oder Android Geräten biete ich daher aktuell nicht an.

 

Zusammenhängende Datensätze farbig hervorheben

Datensätztze farbig hervorheben

Ein häufiges Problem bei großen Datenmengen ist die fehlende Übersichtlichkeit. Excel bietet hier nur für einfache Konstellationen sinnvolle Lösungsansätze. So kann über die Funktion “Als Tabelle formatieren” zum Beispiel jede zweite Zeile farbig hervorgehoben werden. Dadurch können Sie die Zellen einer Zeile einfacher im Blick behalten. Mehrere zusammenhängende Zeilen hervorheben, ist hiermit allerdings nicht möglich.

Möchten Sie deshalb aus einer großen Datenmenge zusammengehörige Zeilen optisch hervorheben, ist das in der Regel, je nach Größe der Tabelle, mit viel händischer Arbeit verbunden.

Weiterlesen

 

Wissenswert: Sverweis Funktion und Makro Alternative

Die Sverweis Formel-Funktion ist eine der beliebtesten Excel Funktionen überhaupt. Die Nutzung kann allerdings auch Probleme bereiten und die Performance bei großen Tabellen stark beeinträchtigen. In diesem Beitrag erfahren Sie, wofür Sie die Sverweis-Funktion nutzen können, worauf Sie achten müssen und schließlich was alternativ Makros leisten können. Dazu stelle ich Ihnen zwei Makros vor. Das erste Makro nutzt die Sverweis-Tabellenblatt-Funktion vlookup() in VBA und bietet somit alle Möglichkeiten der Formel-Funktion. Das zweite Makro stellt die Funktionsweise in ähnlicher Weise nach und bietet im Praxiseinsatz noch weitere Möglichkeiten, die mit der Sverweis-Funktion sonst nicht zu realisieren sind.

Teil 1: Wissenswert: Sverweis Funktion und Makro Alternative
Teil 2: Besser als SVERWEIS: Die XVERWEIS Funktion

Sverweis-Formel im Tabellenblatt
Mit der Sverweis-Funktion können Sie grundsätzlich fehlende Daten aus einer anderen Tabelle zuspielen. Haben Sie zum Beispiel eine Liste mit Postleitzahlen bei denen die Orte fehlen können Sie über einen Sverweis in einer zusätzlichen Spalte die Orte in Abhänigkeit zur Postleitzahl hinzufügen. Voraussetzung ist, dass Sie über ein Postleitzahlenverzeichnis verfügen in denen zu allen Postleitzahlen die Orte gespeichert sind. Sie benötigen also eine Datenbasis aus der Sie die fehlenden Werte zuspielen können. Es sind dabei allerdings noch drei Punkte unbedingt zu beachten.

Weiterlesen

 

Straße und Hausnummer mit Excel trennen – Teil 2 (Variante mit Makro)

Im ersten Teil habe ich Ihnen für das Problem bereits eine Lösung mit einfachen Excel Formelfunktionen vorgestellt. Diese Variante ist für gewisse Adressen vollkommen ausreichend und die Formeln sind auch jederzeit anpassbar und können für den jeweiligen Einsatz weiter optimiert werden. Nutzen Sie die Variante ohne Makros insbesondere dann, wenn Sie keine Makros aktivieren möchten, oder dürfen.

Teil 1: Straße und Hausnummer mit Excel trennen – Variante ohne Makro
Teil 2: Straße und Hausnummer mit Excel trennen – Variante mit Makro

Einen anderen Lösungsansatz stelle ich Ihnen heute mit der makrobasierten Version vor.

Weiterlesen

 

Zelle per Doppelklick mit X markieren

Mit der Makrolösung, die ich Ihnen hier vorstellen werde, können Sie sehr einfach Zellen markieren und ebenso die Markierung wieder aufheben. Auf diese Art können selbst mit Blattschutz versehene Tabellenblätter an ausgewählten Zellen gekennzeichnet werden. In der Praxis können Sie mit diesem Prinzip Checklisten erstellen, Druckbereiche definieren oder Schriftwechselvorlagen mit Auswahlfeldern erweitern.

Weiterlesen

 

Excel VBA – Datei Öffnen Dialog

Öffnen Dialog

Gelegentlich werden Sie für eine bestimmte Aufgabe verschiedene Dateien benötigen. Das kann z.B. vorkommen wenn Sie ein Excel-Tool nutzen, dass die Bearbeitung, Datenerfassung und/oder die Erstellung von Schriftwechseln übernimmt und hierfür die Daten aus einer extern gespeicherten Adressliste, Anbieterliste etc. über ein Makro eingelesen und verarbeitet werden soll.

Heute stelle ich Ihnen zwei kleine VBA-Bausteine vor mit denen Sie während eines Makroablaufs an einer beliebigen Stelle diesen Vorgang in den automatisierten Ablauf integrieren können.

Weiterlesen

 

Sichere Variablendeklaration mit Option Explicit

Häufige Fehler bei Makros sind fehlerhafte Variablen. Standardmäßig müssen Sie nicht zwangsweise eine Variable deklarieren, bevor Sie Sie verwenden können.

Sub ohneVariablenDeklaration()
Zahl = 10
MsgBox Zahl
End Sub

Im obigen Beispiel wird der Variable Zahl zu Beginn der Wert 10 zugewiesen ohne dass die Variable vorher definiert wurde. Mit MsgBox wird Ihnen in der nächsten Zeile der Wert der Variable Zahl über eine Messagebox am Bildschirm angezeigt. Tipp: Eine Ausgabe der Variable per Messagebox eignet sich auch sehr gut um einen Fehler in einem Makro zu finden. So können Sie prüfen, ob den Variablen die richtigen Werte zugewiesen worden sind, oder ob das Makro nur deshalb nicht richtig läuft, weil Sie bei der Deklaration oder Zuweisung der Variablen einen Fehler gemacht haben.

Weiterlesen

 

Erste Schritte – Aufruf vom VBA-Editor

Wie kann ich Makros nutzen? Wohin muss ich den Makro-Quellcode (Programmiercode) kopieren? Wie kann ich das Makro starten?

Das sind die ersten Fragen, die Sie sich wahrscheinlich stellen werden, wenn Sie sich bisher noch gar nicht mit Makroprogrammierung beschäftigt haben. Daher zunächst eine kleine bebilderte Einleitung wie Sie starten.

Teil 1: Erste Schritte – Aufruf vom VBA-Editor
Teil 2: Excel Makros mit dem Makro-Rekorder aufzeichnen

1. Excel und anschließend den Visual Basic-Editor (VBA-Editor) öffnen. Den VBA-Editor öffnen Sie entweder über die Tastenkombination <Alt> + <F11> oder über das Menü.

Bis zur Office Version 2003: “Extras”, “Makro”, “Visual Basic-Editor” (vgl. Abbildung 1)


Abbildung 1

Ab Office Version 2007: Über den Menüpunkt “ENTWICKLERTOOLS” und anschließend das linke Symbol “Visual Basic”. Sofern der Menüpunkt nicht vorhanden ist, können Sie diesen über “DATEI”, “Optionen”, “Menüband anpassen” hinzufügen.


Abbildung 2

2. Im linken oberen Feld des VBA-Editors sehen Sie anschließend die geöffneten Dateien (hier: “Mappe1”) und jeweils darunter die Microsoft Excel Objekte “Diese Arbeitsmappe” und die Tabellenblätter der Datei. Als nächstes sollten Sie ein Modul einfügen, da die meisten Makros in Modulen gespeichert werden (vgl. Abbildung 3). In “Diese Arbeitsmappe” oder dem jeweiligen Tabellenblatt können ebenfalls Makros gespeichert werden, wird aber nur in bestimmten Fällen sinnvoll sein. Nützliche Anwendungsbeispiele für diese Sonderfälle stelle ich Euch noch vor.

Weiterlesen