Excel VBA – Spalten formatieren

Excel VBA – Spalten formatieren
5 Sterne
4 Bewertungen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem Beitrag zeige ich Ihnen wie Sie die Formatierung von Spalten anpassen können. In der folgenden Tabelle sind Menge und Umsatz abgebildet. Wir wollen bei der Menge keine Nachkommastellen haben. Umsatz dagegen soll zwei Nachkommastellen bekommen. Beide sollen einen Tausenderpunkt bekommen.
Spalten über VBA formatieren

Wenn Sie eine statische Tabelle haben, können Sie die einzelnen Spalten direkt addressieren und über die Eigenschaft NumberFormat das Format anpassen. Beachten Sie dabei, dass in VBA die englische Syntax gilt. Komma würde bei uns Punkt bedeuten und umgekehrt. (en 1,000.00 = de 1.000,00) Wenn Sie zum Beispiel Spalten B bis C einheitlich formatieren wollen können Sie das folgende Makro verwenden.

Sub SpaltenFormatieren()

Tabelle1.Columns("B:C").NumberFormat = "#,##0.00"

End Sub

Beispiel formatierte Spalten

In unserem Beispiel können wir auch die Spalten differenzieren.

Sub SpaltenFormatieren()

Tabelle1.Columns("B:B").NumberFormat = "#,##0"
Tabelle1.Columns("C:C").NumberFormat = "#,##0.00"

End Sub

Einzelne Spalten mit VBA formatieren
Was passiert aber, wenn neue Spalten hinzugefügt werden und die Position von Umsatz bzw. Menge sich ändert?
In diesem Fall können wir eine Schleife aufsetzen. Zuerst definieren wir eine Spalten-Variable für die Schleife. Als nächstes geben wir an mit welcher Tabelle wir arbeiten wollen. In dieser Tabelle sollen von der ersten Spalte an alle verwendeten Spalten abgearbeitet werden.

Sub SpaltenFormatierenSchleife()
Dim Spalte As Integer

With Tabelle1

For Spalte = 1 To .UsedRange.Columns.Count

Next Spalte
End With
End Sub

Innerhalb der Schleife prüfen wir die Überschrift der jeweiligen Spalte und formatieren diese dementsprechend.

Sub SpaltenFormatierenSchleife()
Dim Spalte As Integer

With Tabelle1

For Spalte = 1 To .UsedRange.Columns.Count

If .Cells(1, Spalte).Value = "Menge" Then
.Columns(Spalte).NumberFormat = "#,##0"
ElseIf .Cells(1, Spalte).Value = "Umsatz" Then
.Columns(Spalte).NumberFormat = "#,##0.00"
End If

Next Spalte
End With
End Sub

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 - Schritt für Schritt Anleitungen die jeder versteht
Fordere kostenlos 20 Excel Tricks an

Fordere das kostenlose eBook an

* 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 bei Dahlbeer und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. 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.

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen