Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabelle mit Makro formatieren

Tabelle mit Makro formatieren
08.05.2014 16:52:45
henrik
Hey!
ich habe eine Tabelle die ich 90 mal bekomme und formatieren muss. Ich möchte dies per Makro erledigen. Hier die Ausgangstabelle:
https://www.herber.de/bbs/user/90575.xls
Die Ausgangstabelle kann aber auch deutlich mehr Zeilen habe als hier im Beispiel.
Aus der Ausgangstabelle soll nun diese Zieltabelle werden:
https://www.herber.de/bbs/user/90576.xls
Das geht alles wunderbar wenn ich mir per Makro einfach den Formatierungsprozess aufzeichnen lasse. Das Problem ist jedoch die Summenzeile in der Zieltabelle in Zeile 16. Wenn die Ausgangstabelle mehr Zeilen hat bleibt die Summenzeile in der Zieltabelle immer in Zeile 16. Sie sollte aber immer am Ende der Tabelle stehen. Wie kann ich das im Makro berücksichtigen?
Besten Dank schonmal!

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle mit Makro formatieren
08.05.2014 19:07:35
Daniel
HI
Aufzeichnen liefert in der Regel auch keinen brauchbaren Code.
Den Recorder nutzt man eher wie ein Wörterbuch, um einzelne unbekannte Befehle nachzuschlagen.
so würde ich das Programmieren:
Sub test()
Rows(1).ClearContents
With Cells(3, 2).CurrentRegion
With .Offset(-1, 0).Resize(.Rows.Count + 2)
.Cells(1, 1).Value = 1
.Cells(1, 1).Copy
.SpecialCells(xlCellTypeConstants, 2).PasteSpecial xlPasteValues, operation:=xlMultiply
.Rows(1).Value = Array("Datum", "Code", "Wert")
.Columns(1).NumberFormat = "DD.MM.YYYY hh:mm"
.Cells(.Rows.Count, 1).Value = "Summe"
.Cells(.Rows.Count, 3).FormulaR1C1 = "=Sum(R[-" & .Rows.Count - 2 & "]C:R[-1]C)"
.BorderAround Weight:=xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Rows(1).Font.Bold = True
.Rows(.Rows.Count).Font.Bold = True
.Cut Destination:=Cells(5, 1)
End With
End With
End Sub
Gruß Daniel

Anzeige
AW: Tabelle mit Makro formatieren
09.05.2014 09:48:33
henrik
funktioniert perfekt!
besten dank und guter tip mit dem aufzeichner ;)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabelle mit Makro formatieren in Excel


Schritt-für-Schritt-Anleitung

Um eine Tabelle in Excel mithilfe eines Makros zu formatieren, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen. Diese Anleitung basiert auf einem Beispiel, bei dem die Summenzeile immer am Ende der Tabelle stehen soll.

  1. Öffne die Excel-Datei mit der Ausgangstabelle.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf „VBAProject (DeinDateiname)“.
    • Wähle „Einfügen“ > „Modul“.
  4. Kopiere den folgenden Code in das Modul:

    Sub TabelleFormatieren()
       Rows(1).ClearContents
       With Cells(3, 2).CurrentRegion
           With .Offset(-1, 0).Resize(.Rows.Count + 2)
               .Cells(1, 1).Value = 1
               .Cells(1, 1).Copy
               .SpecialCells(xlCellTypeConstants, 2).PasteSpecial xlPasteValues, operation:=xlMultiply
               .Rows(1).Value = Array("Datum", "Code", "Wert")
               .Columns(1).NumberFormat = "DD.MM.YYYY hh:mm"
               .Cells(.Rows.Count, 1).Value = "Summe"
               .Cells(.Rows.Count, 3).FormulaR1C1 = "=Sum(R[-" & .Rows.Count - 2 & "]C:R[-1]C)"
               .BorderAround Weight:=xlThin
               .Borders(xlInsideHorizontal).Weight = xlThin
               .Borders(xlInsideVertical).Weight = xlThin
               .Rows(1).Font.Bold = True
               .Rows(.Rows.Count).Font.Bold = True
               .Cut Destination:=Cells(5, 1)
           End With
       End With
    End Sub
  5. Schließe den Editor und führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf „Ausführen“ klickst.


Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht, weil die Ausgangstabelle nicht die erwartete Struktur hat.

    • Lösung: Stelle sicher, dass Deine Tabelle die entsprechenden Spalten hat und die Daten ab der richtigen Zeile beginnen.
  • Problem: Die Summenzeile wird nicht korrekt berechnet.

    • Lösung: Überprüfe die Formel in der Zelle, die die Summe berechnet. Stelle sicher, dass sie auf die richtigen Zeilen verweist.

Alternative Methoden

Wenn Du kein Makro verwenden möchtest, kannst Du die Tabelle auch manuell formatieren:

  1. Wähle die gesamte Tabelle aus.
  2. Klicke auf „Start“ > „Format als Tabelle“.
  3. Wähle ein Design aus und passe die Felder manuell an.
  4. Füge eine Summenzeile hinzu, indem Du die letzte Zeile der Tabelle auswählst und die Summenformel eingibst.

Diese Methode ist weniger automatisiert, bietet jedoch eine gute Option, wenn Du nur gelegentlich Tabellen formatierst.


Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen, das Makro besser zu verstehen:

  • Beispiel 1: Wenn Deine Tabelle 100 Zeilen hat, wird die Summenzeile automatisch in Zeile 101 eingefügt.
  • Beispiel 2: Bei einer Tabelle mit variablen Zeilen wird die Summenzeile immer an das Ende der Datenreihe angefügt, unabhängig von der Länge der Tabelle.

Tipps für Profis

  • Nutze Relative Zellreferenzen in Deinen Formeln, um flexibler zu sein.
  • Halte Deine Makros gut dokumentiert, um die Wiederverwendbarkeit zu erhöhen.
  • Teste Dein Makro in einer Kopie Deiner Datei, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um weitere Spalten zu formatieren?
Du kannst zusätzliche .Cells-Befehle hinzufügen, um weitere Spalten zu formatieren, indem Du die entsprechenden Zeilen und Spalten in den Methodenaufrufen änderst.

2. Funktioniert das Makro in allen Excel-Versionen?
Das Makro sollte in den meisten modernen Excel-Versionen (ab Excel 2010) funktionieren, da es grundlegende VBA-Funktionen verwendet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige