Das wohl am häufigsten verwendete Objekt ist die Zelle. Diese Zelle wird in Excel als Range bezeichnet. Damit können Sie eine Zelle, mehrere Zellen und sogar ganze Bereiche ansprechen. Für die Programmierung von Zellen stehen Ihnen pro Tabelle als Obergrenze die Zellen aus 256 Spalten und insgesamt 65536 Zeilen zur Verfügung. In den allermeisten Fällen werden Sie diese Kapazität nie ausnutzen.

1.1 Umlaute ersetzen

Im ersten Praxisbeispiel sollen in einer Tabelle in allen markierten Zellen die Umlaute ersetzt werden. Um diese Aufgabe zu erledigen, fügen Sie ein neues Modul in der Entwicklungsumgebung ein, indem Sie über die Tastenkombination Alt + F11 in die Entwicklungsumgebung wechseln und dort aus dem Menü Einfügen den Befehl Modul wählen. Erfassen Sie danach das folgende Listing:

Sub ZeichenTauschen()
Dim zelle As Range
For Each zelle In Selection
With Selection
  .Replace What:="ä", Replacement:="ae", LookAt:=xlPart
  .Replace What:="ö", Replacement:="oe", LookAt:=xlPart
  .Replace What:="ß", Replacement:="ss", LookAt:=xlPart
  .Replace What:="ü", Replacement:="ue", LookAt:=xlPart
End With
Next zelle
End Sub

Bei diesem Makro werden alle Umlaute in Zellen, die Sie vorher markiert (For Each Zelle In Selection) haben, ersetzt. Um das Makro zu starten, wählen Sie in der Tabelle aus dem Menü Extras den Befehl Makro → Makros und starten das Makro mit einem Doppelklick auf den Eintrag ZeichenTauschen im Listenfeld.

Dieses Makro können Sie selbstverständlich anpassen und beispielsweise durch andere Zeichen ersetzen. Dazu geben Sie im Argument What das Zeichen an, das ersetzt werden soll. Im Argument Replacement geben Sie dann das Zeichen an, das als Ersatz herangezogen werden soll.

1.2 Leerzeichen entfernen

Viele Probleme können entstehen, wenn sich führende bzw. nachfolgende Leerzeichen in Zellen befinden. Diese Leerzeichen können beispielsweise oft nach Importen von Daten aus Fremdsystemen auftreten und erschweren Auswertungen mit Excel-Standardfunktionen und Pivot-Tabellen. Eine sichere Methode, um Leerzeichen aus Zellen zu entfernen, bietet das folgende Listing:

Sub LeerzeichenEntfernen()
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Value = Trim(Zelle.Value)
Next Zelle
End Sub

Beim diesem Listing werden alle führenden und nachfolgenden Leerzeichen in den markierten Zellen (For Each Zelle In Selection) entfernt. Sollen nicht alle Leerzeichen, sondern nur Leerzeichen am linken Zellenrand entfernt werden, dann ersetzen Sie die Funktion Trim im Makro durch die Funktion LTrim. Müssen lediglich die Leerzeichen am rechten Rand der Zellen entfernt werden, dann ersetzen Sie die Funktion Trim im Makro durch die Funktion RTrim.

Das ist nur ein Ausschnitt aus dem Produkt Controlling Office. Sie wollen mehr?


Meistgelesene beiträge