Intelligenten Tabellen haben eine Vielzahl von Sonderfunktionen, die das Arbeiten mit Daten effizienter gestalten.
Zuerst zeige ich dir, wie du intelligente Tabellen in VBA erstellen und umbenennen kannst.
Mithilfe der .Add Methode (1) kannst du per VBA intelligente Tabellen erstellen.
Mit .Name (2) kannst du den Namen der intelligenten Tabelle festlegen.
Sub Intelligente Tabellen()
Tabelle1.ListObjects.Add xlSrcRange, Tabelle1.Range("B3:E15"),,xlYes
Tabelle1.ListObjects(1).Name = "tbProdukte"
End Sub
Über VBA kannst du verschiedene Bereiche der intelligenten Tabelle ansprechen.
Mit .Range.Select sprichst du die gesamte intelligente Tabelle an (1).
Mit .DataBodyRange.Select kannst du den Datenbereich der intelligenten Tabelle ansprechen (2).
Mit .Range (Zeile, Spalte) sprichst du einzelne Zellen an (3).
Mit .ListRows (Zeile).Range.Select kannst du Zeilen ansprechen (4).
Mit .ListColumns (Spalte).DataBodyRange.Select sprichst du Spalten an (5).
Sub Intelligente Tabellen()
Tabelle1.ListObjects("tblProdukte").Range.Select
Tabelle1.ListObjects("tblProdukte").DataBodyRange.Select
Dim tbl as ListObject
Set tbl = Tabelle1.ListObjects("tblProdukte")
tbl.Range(5, 2).Select
tbl.ListRows(4).Range.Select
tbl.ListColumns("Produkt-ID").Range.Select
End Sub
Zeilen und Spalten kannst du hinzufügen oder löschen.
Mit .ListRows.Add bzw. .ListColumns.Add kannst du Zeilen / Spalten hinzufügen (+).
Mit .ListRows(Zeile).Delete bzw. .ListColumns(Spalte).Delete löschst du die angegebene Zeile / Spalte (-).
Sub Intelligente Tabellen()
Dim tbl as ListObject
Set tbl = Tabelle1.ListObjects("tblProdukte")
tbl.ListRows.Add
tbl.ListColumns.Add
tbl.ListRows(5).Delete
tbl.ListColumns(5).Delete
End Sub
Du kannst die letzte Zeile deiner intelligenten Tabelle ermitteln und zum Beispiel eine Formel auf eine ganze Spalte anwenden.
Die letzte Zeile ermittelst du über .ListRows.Count (1).
Über .DataBodyRange (1, Spalte).Formula kannst du eine Formel in die erste Zelle der angegebenen Spalte hinzufügen (2). Die intelligente Tabelle übernimmt für alle weiteren Zellen in dieser Spalte die entsprechende Formel.
Sub Intelligente Tabellen()
Dim tbl as ListObject
Set tbl = Tabelle1.ListObjects("tblProdukte")
MsgBox tbl.ListRows.Count
tbl.DataBodyRange(1,2).Formula = "=SUM(RC[-1])"
End Sub
Du kannst auch den kompletten Inhalt oder die gesamte intelligente Tabelle löschen.
Mit .DataBodyRange.Delete löschst du den Inhalt deiner intelligenten Tabelle (1).
Über .Range.Delete löschst du die gesamte intelligente Tabelle (2).
Sub Intelligente Tabellen()
Dim tbl as ListObject
Set tbl = Tabelle1.ListObjects("tblProdukte")
tbl.DataBodyRange.Delete
tbl.Range.Delete
End Sub
Um VBA zu lernen und besser zu verstehen, empfehle ich dir mein kostenloses Grundlagentraining, in dem ich dir die ersten Schritt in Excel-VBA zeige.
Ich hoffe diese Tricks helfen dir dabei, deine Anwendung professioneller und benutzerfreundlicher zu machen!