Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabelle per VBA formatieren

Forumthread: Tabelle per VBA formatieren

Tabelle per VBA formatieren
29.07.2019 12:03:50
DüsenDieter
Guten Tag,
ich würde gerne eine Kopfzeile einer Tabelle mit dynamischer Spaltenanzahl formatieren.
Der Text soll bold sein, der Hintergrund ein dunkles grau, alle Rahmenlinien sollten angeschaltet sein und der Text zentriert (X und Y Achse)
Ich habe schon eine Stunde lang gegoogelt und mit dem Makrorekorder versucht die die Befehle rauszufinden aber irgendwie finde ich nichts was mir weiter hilft.
Für Hilfe wäre ich dankbar
Gruß
Dieter
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle per VBA formatieren
29.07.2019 12:58:28
EtoPHG
Hallo,
Und wir sollen jetzt herausfinden, wie deine Tabelle aussieht?
Kennst Du wenigstens den Makrorekorder von Excel? Wenn nicht such ihn in der XL-Hilfe und wende ihn zur Aufzeichnung deiner Befehle. Ein Alternative: Mach eine i(ntelligente) Tabelle aus deinem Datenbereich. Da hast du Dutzende Layouts für die Darstellung zur Verfügung.
Gruess Hansueli
Anzeige
AW: Tabelle per VBA formatieren
30.07.2019 08:11:11
DüsenDieter
Hallo Hansueli,
nein, es ist unnötig zu wissen wie die komplette Tabelle aussieht, wenn ich praktisch gesehen nur Zeile 1 auf jedem Tabellenblatt formatieren will. Ich habe auch das Gefühl, dass du meine Fragestellung nicht richtig gelesen hast, da ich auf den Makrorekorder und seinen Unnutzen hingewiesen habe. Da ich das Problem gelöst habe hier einmal meine Lösung:

For Each wks In ThisWorkbook.Sheets
If wks.Name Like "*" & "Shoopdawoop" & "*" Then
wks.Activate
i = 1
colcount = Cells(1, 256).End(xlToLeft).Column + 1
For x = 0 To colcount
With Cells(1, i)
.Font.Bold = True
.Font.Italic = False
.Interior.ColorIndex = 15
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.BorderAround _
xlContinuous
End With
If i 
Man hätte es sicher eleganter lösen können als mit 2 For-Loops aber es erfüllt seinen Zweck :)
Anzeige
AW: Tabelle per VBA formatieren
30.07.2019 11:51:35
Daniel
Hi
wenn die Tabelle in Zelle A1 beginnt und innerhalb der Überschriftenzeile alle Zellen befüllt sind::
With Cells(1, 1).CurrentRegion.Rows(1)
.Font.Bold = True
End With
wenn die Tabelle auch Leerspalten enthalten kann:
With Range(Cells(1, 1), Cells(1, Columns.Count).End(xltoleft))
.Font.Bold = True
End with
Gruß Daniel
Anzeige
;
Anzeige

Infobox / Tutorial

Tabelle per VBA formatieren


Schritt-für-Schritt-Anleitung

Um die Kopfzeile einer Tabelle in Excel mit VBA zu formatieren, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und wähle Modul.

  3. Kopiere den folgenden Code in das Modul:

    For Each wks In ThisWorkbook.Sheets
       If wks.Name Like "*" & "DeinTabellenname" & "*" Then
           wks.Activate
           colcount = Cells(1, 256).End(xlToLeft).Column
           For i = 1 To colcount
               With Cells(1, i)
                   .Font.Bold = True
                   .Interior.ColorIndex = 15 ' Dunkles Grau
                   .HorizontalAlignment = xlCenter
                   .VerticalAlignment = xlCenter
                   .Borders.LineStyle = xlContinuous
               End With
           Next i
       End If
    Next wks
  4. Passe den Tabellennamen an: Ersetze "DeinTabellenname" durch den Namen Deiner Tabelle.

  5. Führe das Makro aus: Drücke F5, um das Makro auszuführen und die Formatierung anzuwenden.


Häufige Fehler und Lösungen

  • Fehler: "Subscript out of range"

    • Lösung: Überprüfe, ob der Tabellenname korrekt ist und existiert.
  • Fehler: Formatierungen werden nicht angewendet

    • Lösung: Stelle sicher, dass Du das Makro in der richtigen Arbeitsmappe ausführst und dass die Kopfzeile in der ersten Zeile ist.

Alternative Methoden

Eine alternative Methode zur Formatierung der Kopfzeile besteht darin, eine intelligente Tabelle (auch als Excel-Tabelle bekannt) zu erstellen. Damit kannst Du eine Vielzahl von vordefinierten Layouts und Stilen verwenden, ohne VBA zu benötigen:

  1. Wähle Deinen Datenbereich aus.
  2. Klicke auf den Reiter Einfügen und wähle Tabelle.
  3. Aktiviere das Kontrollkästchen Meine Tabelle hat Überschriften.
  4. Wähle im Tabellentool den gewünschten Stil aus.

Praktische Beispiele

Wenn Deine Tabelle in Zelle A1 beginnt und alle Spalten in der Überschriftenzeile befüllt sind, kannst Du den folgenden VBA-Code verwenden:

With Cells(1, 1).CurrentRegion.Rows(1)
    .Font.Bold = True
    .Interior.ColorIndex = 15
    .HorizontalAlignment = xlCenter
    .Borders.LineStyle = xlContinuous
End With

Falls die Tabelle auch leere Spalten enthalten kann, ist dieser Code nützlich:

With Range(Cells(1, 1), Cells(1, Columns.Count).End(xlToLeft))
    .Font.Bold = True
    .Interior.ColorIndex = 15
    .HorizontalAlignment = xlCenter
    .Borders.LineStyle = xlContinuous
End With

Tipps für Profis

  • Modularer Code: Überlege, Deine Formatierungsbefehle in Funktionen zu kapseln, um die Wiederverwendbarkeit zu erhöhen.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um Probleme während der Ausführung zu identifizieren und zu lösen.
  • Dokumentation: Dokumentiere Deinen Code mit Kommentaren, um ihn leichter verständlich zu machen.

FAQ: Häufige Fragen

1. Kann ich die Farbe der Kopfzeile anpassen? Ja, Du kannst die ColorIndex-Eigenschaft ändern, um andere Farben zu verwenden. Die Werte reichen von 1 bis 56.

2. Wie kann ich die Formatierung auf mehrere Arbeitsblätter anwenden? Der bereitgestellte Code durchläuft alle Arbeitsblätter. Stelle sicher, dass Du den Tabellennamen entsprechend anpasst.

3. Was ist eine intelligente Tabelle? Eine intelligente Tabelle ist ein Bereich von Daten, der in Excel als Tabelle formatiert wurde. Sie ermöglicht es Dir, Daten einfacher zu verwalten und zu analysieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige