Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Anfangszeilen-u. Spalten einfärben





Frage

Hallo Excel-Gemeinde! Ich hätte da mal wieder eine Frage! Mit dem untenstehenden Makro kopiere ich Pivottabellen in eine neues Arbeitsblatt. Da die Tabellen in unterschiedlichen Zeilen beginnen können, bräuchte ich: 1. einen Befehl zum Zentrieren der ersten drei Zeilen und 2. einen Befehl der mir die ersten drei Zeilen sowie die ersten drei Spalten jeder Tabelle einfärbt (z. B. gelb). Geht sowas? Wäre echt super, wenn mir jemand helfen könnte. Gruss Ines [code]Sub AuswertungKostenGebäudeGesamt() Dim pvtTable As Object 'WICHTIG für das Durchlaufen von Pivotelementen Dim Tabellenname As String Dim i As Integer, Zz As Integer Sheets("Daten Kosten").Select Cells(1, 1).Select 'Auswertungsgrad 1 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ ActiveCell.CurrentRegion).CreatePivotTable TableDestination:="", _ TableName:="PivotTable11", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("PivotTable11").ColumnGrand = False ActiveSheet.PivotTables("PivotTable11").AddFields RowFields:=Array( _ "KoSt-Gruppen-Bezeichnung", "KoSt-Bezeichnung") ActiveSheet.PivotTables("PivotTable11").PivotFields("Saldo").Orientation = _ xlDataField ' Beginn des Durchlaufens von Pivotlementen, um nicht gewünschte auszuschalten Set pvtTable = ActiveSheet.PivotTables("PivotTable11") Set pvtTable = ActiveSheet.PivotTables("PivotTable11") For Each pvtitem In pvtTable.PivotFields("KoSt-Gruppen-Bezeichnung").PivotItems ' MsgBox pvtitem.Name If pvtitem.Name <> "Gebäude" Then pvtitem.Visible = False ' Hier werden alle Kostenträger ausgeschaltet mit Ausnahme von 999 ' Soll nur 999 ausgeschaltet werden, muss die Zeile lauten: ' If pvtitem.Name = "999" Then pvtitem.Visible = False Next ' Ende des Durchlaufens von Pivotelementen ' Tabellenname erhält den Name des Blattes mit der Pivottabelle Tabellenname = ActiveSheet.Name Range("A3").Select ActiveSheet.PivotTables("PivotTable11").PivotFields(Range("A3").Value). _ Function = xlSum Range("B5").Select With ActiveSheet.PivotTables("PivotTable11").PivotFields("Summe von Saldo") .NumberFormat = "#,##0.00" End With ActiveSheet.PivotTables("PivotTable11").PivotSelect "", xlDataAndLabel, True Selection.Copy Windows("Auswertung.XLS").Activate Sheets("Gebäude").Select i = Cells(Rows.Count, 1).End(xlUp).Row Cells(i, 1).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Columns("A:Z").AutoFit Windows("Modul 1.XLS").Activate Sheets(Tabellenname).Select ActiveWindow.SelectedSheets.Delete Sheets("Daten Kosten").Select Cells(1, 1).Select 'Auswertungsgrad 2 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ ActiveCell.CurrentRegion).CreatePivotTable TableDestination:="", _ TableName:="PivotTable12", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("PivotTable12").ColumnGrand = False ActiveSheet.PivotTables("PivotTable12").AddFields RowFields:=Array( _ "KoSt-Gruppen-Bezeichnung", "KoSt-Bezeichnung"), ColumnFields:=Array("Kost2", _ "KoTr-Bezeichnung") ActiveSheet.PivotTables("PivotTable12").PivotFields("Saldo").Orientation = _ xlDataField ' Beginn des Durchlaufens von Pivotlementen, um nicht gewünschte auszuschalten Set pvtTable = ActiveSheet.PivotTables("PivotTable12") For Each pvtitem In pvtTable.PivotFields("KoSt-Gruppen-Bezeichnung").PivotItems ' MsgBox pvtitem.Name If pvtitem.Name <> "Gebäude" Then pvtitem.Visible = False ' Hier werden alle Kostenträger ausgeschaltet mit Ausnahme von 999 ' Soll nur 999 ausgeschaltet werden, muss die Zeile lauten: ' If pvtitem.Name = "999" Then pvtitem.Visible = False Next ' Ende des Durchlaufens von Pivotelementen ' Tabellenname erhält den Name des Blattes mit der Pivottabelle Tabellenname = ActiveSheet.Name Range("A3").Select ActiveSheet.PivotTables("PivotTable12").PivotFields(Range("A3").Value). _ Function = xlSum Range("B5").Select With ActiveSheet.PivotTables("PivotTable12").PivotFields("Summe von Saldo") .NumberFormat = "#,##0.00" End With Range("C3").Select ActiveSheet.PivotTables("PivotTable12").PivotFields("Kost2").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) Rows("4:5").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ActiveSheet.PivotTables("PivotTable12").PivotSelect "", xlDataAndLabel, True Selection.Copy Windows("Auswertung.XLS").Activate Sheets("Gebäude").Select i = Cells(Rows.Count, 1).End(xlUp).Row Cells(i + 6, 1).Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Selection.Columns.AutoFit Windows("Modul 1.XLS").Activate Application.CutCopyMode = False Sheets(Tabellenname).Select ActiveWindow.SelectedSheets.Delete[/code]

Antwort 1 von mkburg

mit bedingter Formatierung müstest du das hin kriegen.

Antwort 2 von want2cu

Hallo INes,

ich möchte mkburgs Tipp noch ein wenig ergänzen: die Funktionen ZEILE() und SPALTE() können deine Frage Nr. 2 lösen.
Als VBA-Unwissender kann ich dir ansonsten leider nicht weiter helfen.

CU
want2cu

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: