Excel VBA – Spalten formatieren
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.
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
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
111 VBA Makros die Ihr Leben leichter machen
Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.
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 - 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.
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.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!