Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Interior.Color intelligente Tabelle

Interior.Color intelligente Tabelle
07.06.2019 12:21:45
Felix
Hallo zusammen,
ich habe ein Problem mit einer TAbelle,, welche ich als ListObject formatiert habe und über ein makro mit Werten befülle.
Das Problem besteht darin, dass ich zu Monatsbeginn meine Tabelle übr ein Makro entleere und somit kein Eintrag mehr vorhanden ist. Wenn ich im Anschluss wieder einen Eintrag zur tabelle hinzufüge, dann übernimmt Excel die Formatiereung der Kopfzeile. In dieser ist beispielsweise die Hintergrundfarbe grau.
Also habe ich mir gedacht ich schreibe ein Makro, welches automatisch ausgeführt wird wenn eine Zeile zugefügt wird und die Tabelle einmal so formatiert wie ich sie haben möchte. (Der Mitarbeiter der damit am Ende arbeiten soll ist nicht in der Lage die Tabelle anständig zu formatieren. Dann sieht sie jeden Monat unterschiedlich aus)
Sub TabelleFormatieren()
Dim Zeile As Long
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("Abgänge")
With tbl
For Zeile = 2 To .UsedRange.Rows.Count
If Zeile Mod 2 = 0 Then
.Rows(Zeile).Interior.ColorIndex = 33
End If
Next Zeile
End With
End Sub
Das ist der Versuch dazu. Mir ist klar das im weiteren Verlauf nur jede zweite Zeile eingefärbt wird. Das kann ich dann auch selber anpassen. Mein Problem besteht darin, dass ich die Länge der Tabele nicht bestimmen kann. ichglaube es liegt daran, dass ich die tabelle nicht richtig anspreche. habe schon diverse Wege versucht, aber es klappt einfach nicht.
Kann mir jemand weiterhelfen wie ich hier weiterkomme ?
Grüße
Felix

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Interior.Color intelligente Tabelle
07.06.2019 12:46:12
Daniel
Hallo Felix,
ersetze mal UsedRange mit DataBodyRange.
Gruß
Daniel
AW: Interior.Color intelligente Tabelle
07.06.2019 12:51:52
Felix
Klappt leider auch nicht
AW: Interior.Color intelligente Tabelle
07.06.2019 12:54:50
Daniel
Was heißt denn klappt nicht? Lade doch sonst mal eine Beispielmappe hoch.
AW: Interior.Color intelligente Tabelle
07.06.2019 12:55:03
Torsten
Hallo Felix,
Frage: Wie leerst du denn deine intelligente Tabelle? Manuell?
Dann empfehle ich dir, es so zu machen wie ich. Loesche alle Zeilen komplett bis auf die Zeile unter den Ueberschriften. Diese laesst du mit allen Formatierungen und loeschst nur die Inhalte.
Dann werden auch alle Formatierungen wieder uebernommen.
AW: Interior.Color intelligente Tabelle
07.06.2019 12:56:13
Torsten
Sorry habs ueberlesen. Du leerst sie per Makro. Aber das Makro kann ja umgeschrieben werden
Anzeige
AW: Interior.Color intelligente Tabelle
07.06.2019 12:57:59
Felix
Mit diesem Makro lösche ich die Daten aus der Tabelle:
Sub ResetTable()
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("Abgänge")
'Delete all table rows except first row
With tbl.DataBodyRange
If .Rows.Count > 1 Then
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Rows.Delete
End If
End With

AW: Interior.Color intelligente Tabelle
07.06.2019 13:07:58
Torsten
vielleicht so?
Sub ResetTable()
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("Abgänge")
'Delete all table rows except first row
With tbl.DataBodyRange
If .Rows.Count > 1 Then
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Rows.Delete
.Offset(0, 0).EntireRow.ClearContents
End If
End With
End Sub
Gruss
Anzeige
AW: Interior.Color intelligente Tabelle
07.06.2019 13:24:20
Luschi
Hallo Felix,
ivh mache das so:

Dim objLst As ListObject, objHead As Range
'formatierte Tabelle definieren
Set objLst = Range("tbl_Liste1").ListObject
'Inhalt leeren
objLst.DataBodyRange.ClearContents
'Überschriftenzeile definieren
Set objHead = objLst.HeaderRowRange
'Tabellenobjekt verkleinern, dabei bleibt immer mindestens 1 Datenzeile erhalten
objLst.Resize objHead.Resize(2, objHead.Columns.Count)
Set objLst = Nothing: Set objHead = Nothing
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige