Excel VBA – Tabellenexistenz prüfen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.

Bevor Sie auf eine bestimmte Tabelle in einer Arbeitsmappe zugreifen, sollten Sie prüfen, ob diese auch tatsächlich existiert. In diesem Beitrag zeige ich Ihnen wie es geht.
Wechseln Sie zunächst mit der Tastenkombination ALT+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein. Als Nächstes legen wir eine neue Funktion an. Dieser wird der Name der Tabelle übergeben, deren Existenz wir prüfen möchten. Die Funktion gibt wiederrum einen booleschen Wert (wahr bzw. falsch) aus.

Function TabEx(strTab As String) As Boolean

End Function

Innerhalb der Funktion wird eine Variable vom Typ Worksheet deklariert. Standardmäßig setzen wir den Rückgabewert auf falsch. Anschließend gehen wir mit einer Schleife über alle Blätter der Arbeitsmappe und suchen nach dem jeweiligen Tabellennamen. Im Falle einer Übereinstimmung wird der Rückgabewert auf wahr gesetzt. Anschließend beenden wir die Funktion.

Function TabEx(strTab As String) As Boolean
Dim Blatt As Worksheet

TabEx = False

For Each Blatt In ActiveWorkbook.Worksheets

If Blatt.Name = strTab Then

TabEx = True
Exit Function

End If
Next Blatt
End Function

Diese Funktion können Sie nun immer aus einem Makro aufrufen, wenn Sie auf eine Tabelle zugreifen. Zum Beispiel wenn Sie eine Tabelle löschen möchten oder Werte in eine Tabelle reinschreiben wollen. In diesen Fällen ist es sinnvoll sicherzustellen, dass die Tabelle überhaupt existiert.

Anbei ein Beispiel-Makro, welches den Tabellen-Namen an die Funktion übergibt und den booleschen Wert zurückerhält.

Sub TestTabelle()
If TabEx("Tabelle1") = True Then
MsgBox "Die Tabelle existiert"
Else
MsgBox "Die Tabelle existiert nicht"
End If
End Sub

VBA Prüfung - Tabelle existiert

Wie Sie sehen existiert die Tabelle1 tatsächlich. Prüfen wir nun ob in der Mappe eine Tabelle mit dem Namen Tabelle4 vorhanden ist.

Sub TestTabelle()
If TabEx("Tabelle4") = True Then
MsgBox "Die Tabelle existiert"
Else
MsgBox "Die Tabelle existiert nicht"
End If
End Sub

VBA Prüfung - Tabelle existiert nicht
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

Excel VBA – Auf Ablaufdatum prüfen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.

In diesem How To prüfen wir über eine eigene Funktion ob ein bestimmtes Ablaufdatum erreich wurde oder nicht.
Um die Funktion anzulegen wechseln wir mit ALT+F11 in die Entwicklungsumgebung und fügen ein neues Modul ein. Der Funktion wird eine Zelle übergeben in der das zu prüfende Datum stehen soll. Anschließend vergleichen wir das aktuelle Datum (Date) mit dem jeweiligen Zellenwert. Ist das aktuelle Datum größer als das in der Zelle stehende, dann ist das Datum abgelaufen.

Function DatumAbgelaufen(Zelle As Range)

If Date > Zelle.Value Then
DatumAbgelaufen = True
Else
DatumAbgelaufen = False
End If

End Function

Ablaufdatum mit VBA prüfen

Soll auch das aktuelle Datum als abgelaufen gekennzeichnet werden, passen Sie die Funktion wie folgt an.

Function DatumAbgelaufen(Zelle As Range)

If Date >= Zelle.Value Then
DatumAbgelaufen = True
Else
DatumAbgelaufen = False
End If

End Function

Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Dieser Beitrag ist ein Teil eines Kurses, der Ihnen einen Schnelleinstieg in VBA ermöglichen soll und ist nach der folgenden Struktur aufgebaut:


Grundlagen:
Einführung in die objektorientierte Programmierung
Objekte, Methoden, Eigenschaften, Ereignisse und der Objektkatalog
Entwicklertools einblenden
Erstes Makro anlegen

Erste Makros:
Das aktuelle Datum in eine Zelle eintragen
Mehrzeiliges Meldungsfenster
Eine Tabelle nach einer Rückfrage löschen
Eine Eingabemaske erstellen

Zellen:
Bereich auslesen
Definierten Bereich füllen und leeren
Zellen im Bereich summieren
Bedingte Summation – Alle Werte größer als 100 summieren
Letzte verwendete Zeile bestimmen
Letzte verwendete Spalte bestimmen
Kommentare hinzufügen

Bedingungen:
Prüfen ob der Inhalt einer Zelle numerisch ist
Prüfen ob die Zelle leer ist
Zelle auf ein gültiges Datum prüfen
Sprachabhängige Meldungen ausgeben (SELECT CASE)

Schleifen:
Alle verwendete Zeilen bearbeiten
Wochenenden hervorheben
Tabellen über eine Schleife ausblenden
Leere Spalten verstecken
Alle Zellen in dem markierten Bereich bearbeiten (Großschreibung / Kleinschreibung)
Mehrere Bereiche vereinen und alle Zellen formatieren
Alle Tabellen schützen

Zeilen:
Jede zweite Zeile einfärben
Zeilenhöhe festlegen
Gesamte Zeile summieren
Leere Zeilen löschen
Zeilen ausblenden
Mehrmals vorkommende Einträge filtern (Unikatsliste erstellen)
Bestimmte Zeilen in eine andere Tabelle kopieren
Leere Zeilen einfügen
Eigene Suchfunktion bauen – bestimmte Zeile finden mit Kundennr. und Namen. Eigenschaft .Row der Variable Treffer

Spalten:
Daten filtern
Spaltenbereite anpassen
Spalte summieren
Spalten ausblenden
Leere Spalten löschen
Spalten formatieren
Spalten in eine andere Tabelle kopieren
Neue Spalten einfügen
Bestimmte Spalte finden

Tabellen:
Tabellennamen auslesen
Neue Tabellen einfügen und benennen
Tabellen löschen
Formeln entfernen
Druckbereich bestimmen
Farbe der Tabellenreiter ändern
Tabelle kopieren
Prüfung Tabellen- oder Diagrammblatt
Eigene Kopf-und Fußzeilen erstellen

Arbeitsmappen:
Arbeitsmappe erzeugen
Arbeitsmappe speichern
Verknüpfungen entfernen
Dokumenteigenschaften auslesen und verändern
Persönliche Informationen aus Dateieigenschaften löschen
Daten und Informationen über Dokumentprüfung entfernen
Arbeitsmappe löschen

Applikation:
Neuberechnung ausschalten
Excel Funktionen ein- und ausschalten
Ansichtsoptionen über Makro steuern
Excel-Version auslesen
Umgebungsvariablen auslesen

Mappen-Ereignisse:
Scrollarea festlegen
Das Schließen der Mappe verhindern
Druckvorgang abfangen
Auswahl bestimmter Tabellen unterbinden
Neue Tabellen sofort löschen
Tastenkombination definieren

Tabellen-Ereignisse:
Bereichsauswahl verhindern
Geänderte Zellen markieren
Eingaben konvertieren (z.B. Großbuchstaben)
Änderungen in einem Change Log dokumentieren
Eingaben sofort rückgängig machen
Tabellenverschiebung verhindern
Eine Zeile per Doppelklick einfärben
Rechten Mausklick deaktivieren

Standardfunktionen:
Nach einer Zeichenkette suchen – InStr
Länge mit Left und Len messen und korrigieren
Pfad und Dateinamen mit Funktionen InStrRev, Left und Mid trennen
Zeichen ersetzen mit Replace
Leerzeichen mit Trim entfernen
Zeichenkette aufteilen und zusammenfügen mit Split und Join
Mit DatePart Quartal und Kalenderwoche aus einem Datum ableiten
Differenz von zwei Datumswerten mit DateDiff berechnen
Text mit CDate in Datum umwandeln

Benutzerdefinierte Funktionen
Nur sichtbare Zellen summieren
Fett formatierte Werte zählen
Letzten Wert in der Zeile ausgeben
Eine eigene AutoText Funktion erstellen
Formeltext in Zelle ausgeben
Sonderzeichen entfernen
Prüfen, ob ein Bereich leer ist
Auf Ablaufdatum prüfen

Modul-Funktionen
Tabellenexistenz prüfen
Existenz der Arbeitsmappe prüfen
Prüfen ob eine Mappe geöffnet ist
Letzten Monatstag ermitteln
Alle Leerzeichen entfernen
Alphanumerische Zeichen löschen
Tabellenschutz prüfen
Spalten auf Inhalte prüfen
Quersumme berechnen

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

Excel VBA – Prüfen, ob ein Bereich leer ist

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem Beitrag prüfen wir über eine benutzerdefinierte Funktion, ob irgendwo in einem bestimmten Bereich eine Zelle einen Wert aufweist. Wenn es der Fall ist, wird der Wert FALSCH zurückgegeben.
Mit VBA prüfen ob ein Bereich leer ist
Wechseln Sie zunächst über die Tastenkombination Alt+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein. Wir erfassen eine neue Funktion und übergeben diesem den Bereich, den wir prüfen möchten. Da wir in dem übergebenen Bereich alle Zellen prüfen, benötigen wir auch eine Variable für die Schleife.
Ursprünglich gehen wir davon aus, dass der Bereich tatsächlich leer ist und setzen den Ausgabewert auf WAHR. Anschließend arbeiten wir mit der Schleife Zelle für Zelle ab. Sollte auch nur eine Zelle einen Wert enthalten ist der gesamte Bereich nicht mehr leer. Daher können wir den Ausgabewert auf FALSCH setzen und die Schleife abbrechen. Das gesamte VBA Coding schaut dann wie folgt aus:

Function BereichLeer(Bereich As Range)
Dim Zelle As Range

BereichLeer = True

For Each Zelle In Bereich.Cells

If Zelle.Value <> "" Then

BereichLeer = False
Exit Function

End If
Next Zelle
End Function

Gehen Sie nun zurück in die Arbeitsmappe und testen Sie die Funktion.
Bereich ist nicht leer

Die Funktion erkennt korrekterweise, dass der Bereich nicht leer ist. Sollte der Bereich leer sein, bleibt es bei der initialen Einstellung WAHR.
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

Excel VBA – Sonderzeichen entfernen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.

In diesem VBA How-To präsentiere ich Ihnen eine dynamische Lösung zum Einsatz einer Funktion, die aus Zellen unerwünschte Zeichen wie -, / und \ entfernt. In meinem Beispiel arbeite ich mit Materialnummern. Aber Sie können die Funktion beliebig anpassen und anderweitig verwenden. Zum Beispiel bei der Bereinigung von Telefonnummern.
Sonderzeichen über VBA entfernen
Wechseln Sie zunächst mit der Tastenkombination ALT+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein.
Wir übergeben unserer Funktion die zu bereinigende Zelle. Außerdem deklarieren wir eine Variable vom Typ Integer. Diese wird bei der Überprüfung der Zeichen verwendet. In der jeweiligen Zelle wird mithilfe einer Schleife Zeichen für Zeichen überprüft. Dabei gestalten wir das Schleifenende dynamisch. Es wird immer vom ersten bis zum letzten Zeichen geprüft. Die Länge der jeweiligen Zeichenkette (Strings) bekommen wir über die Funktion Len heraus.

Function Parsen(Zelle As Range)
Dim intZ As Integer
For intZ = 1 To Len(Zelle.Value)

Next intZ
End Function

Innerhalb der Schleife wir das jeweilige Zeichen geprüft. Mit der Funktion Mid extrahieren wir Zeichen für Zeichen und arbeiten so den Inhalt von links nach rechts ab. Sollte es sich dabei um ein Sonderzeichen handeln, wird es ignoriert. Andernfalls wird es zu der „neuen“ Zeichenkette hinzugefügt. Diese wird anschließend ausgegeben.

Function Parsen(Zelle As Range)
Dim intZ As Integer

For intZ = 1 To Len(Zelle.Value)

Select Case Mid(Zelle.Value, intZ, 1)

Case "/", "-", "\"

Case Else

Parsen = Parsen & Mid(Zelle.Value, intZ, 1)

End Select
Next intZ
End Function

Wechseln Sie nun zurück in die Arbeitsmappe und testen Sie die Funktion. Markieren Sie dabei den Bereich B2 bis B12. Fügen Sie nun unsere Funktion Parsen ein und übergeben Sie dieser die zu verarbeitende Zelle. Schließen Sie die Eingabe mit STRG+ENTER ab. Der gesamte Bereich wird nun mit der Funktion ausgefüllt.

VBA Parsen Ergebnis
Unsere Funktion funktioniert prächtig. Die Daten sind bereinigt.
Diese Funktion können Sie nun ganz einfach um weitere unerwünschte Zeichen ergänzen.
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.