Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Positionierung im Tabellenblatt

Positionierung im Tabellenblatt
04.08.2006 11:40:26
JürgenH
Liebe Foris, ich habe ein kleines Problem:
ich erstelle mit einem Makro aus einem Tabellenblatt eine Pivot-Tabelle in einem gesonderten Blatt. Nach Fertigstellen zeigt der Bildschirm den Tabellenanfang dieses Blattes. Ich möchte das Bildschirmfenster aber gerne so positioniert haben, dass die Pivot-Summenzeile die letzte am Bildschirm angezeigte Zeile ist (also nach unten positionieren).
Wie mache ich das?
Vielen Dank

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Positionierung im Tabellenblatt
04.08.2006 12:22:47
Rolf
Hallo Jürgen,
füge deinem Makro diese Befehlszeilen an:
Sheets(ActiveSheet.Index + 1).Activate 'Pivotblatt wurde hinter Quelltabelle eingefügt
'Sheets(ActiveSheet.Index - 1).Activate 'Pivotblatt wurde vor Quelltabelle eingefügt
Selection.SpecialCells(xlCellTypeLastCell).Select
fG
Rolf
AW: Positionierung im Tabellenblatt
04.08.2006 12:38:05
JürgenH
Danke, Rolf, hat aber leider nicht gefunzt. Die aktive Zelle steht im Pivotblatt auf G103, obwohl die Gesamtsummenzeile die Nummer 53 hat.
AW: Positionierung im Tabellenblatt
04.08.2006 12:45:55
fcs
Hallo Jürgen,
geht etwa so in deutscher Version:

Sub Test()
Dim wksPivot As Worksheet
Set wksPivot = ActiveWorkbook.Sheets("PivotTab")
With wksPivot
.PivotTables("Pivot-Tabelle1").PivotSelect "Spaltengesamtergebnis", xlLabelOnly
.Select
If ActiveCell.Row > 34 Then
Application.ActiveWindow.ScrollRow = ActiveCell.Row - 30
End If
End With
End Sub

Die Zahlen 34 und 30 hängen von der Schriftgröße (ich arbeite mit 10 pt) ab und von der Zahl evtl. fixierter Zeilen.
gruss Franz

Anzeige
AW: Positionierung im Tabellenblatt
04.08.2006 13:45:46
JürgenH
Hallo Franz, und danke!
Hat leider wieder nicht geklappt. Ich bekomme "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs" in der SetWksPivot-Zeile.
Hier das komplette Makro (das ich mit dem Rekorder aufgezeichnet habe):

Sub Pivot()
Columns("C:Q").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Users!C:Q").CreatePivotTable TableDestination:="", TableName:= _
"PivotTable2", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Fäll.Datum")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
"PivotTable2").PivotFields("Beleg"), "Anzahl von Beleg", xlCount
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
"PivotTable2").PivotFields("Betrag"), "Summe von Betrag", xlSum
Range("B5").Select
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.PivotTables("PivotTable2").PivotSelect "", xlDataAndLabel, True
ActiveSheet.PivotTables("PivotTable2").Format xlReport2
Columns("C:C").Select
Selection.NumberFormat = "#,##0.00"
' Ergänzung von Franz:
Dim wksPivot As Worksheet
Set wksPivot = ActiveWorkbook.Sheets("PivotTable2") 'hier kommt der Fehler!
With wksPivot
.PivotTables("Pivot-Tabelle1").PivotSelect "Spaltengesamtergebnis", xlLabelOnly
.Select
If ActiveCell.Row > 34 Then
Application.ActiveWindow.ScrollRow = ActiveCell.Row - 30
End If
End With
End Sub

Anzeige
AW: Positionierung im Tabellenblatt
04.08.2006 14:47:32
fcs
Hallo Jürgen,
probiere mal folgende Ergänzung. Da du eh nicht mit Objeten arbeitets, kann man sich die Dim- und Set-Zeile sparen. Es kann sein, dass das Makro immer noch muckt, wegen "Spaltengesamtergebnis". Falls ja, dann ein Makro aufzeichnen bei dem du in der Pivottabelle die letzte Zeile in der linken Spalte anklickst, dann hast du die korrekte Syntax für diese Zeile.

' Ergänzung von Franz:
ActiveSheet.PivotTables("PivotTable2").PivotSelect "Spaltengesamtergebnis", xlLabelOnly
If ActiveCell.Row > 34 Then
Application.ActiveWindow.ScrollRow = ActiveCell.Row - 30
End If

gruss Franz
Anzeige
AW: Positionierung im Tabellenblatt
04.08.2006 13:19:35
Rolf
Hallo Jürgen,
ich bin davon ausgegangen, dass dein Pivotblatt lediglich deine Pivottabelle enthält;
so müsste es eigentlich gehen
Sheets(ActiveSheet.Index + 1).Activate 'Pivotblatt wurde hinter Quelltabelle eingefügt
'Sheets(ActiveSheet.Index - 1).Activate 'Pivotblatt wurde vor Quelltabelle eingefügt
Application.GoTo Reference:=ActiveSheet.PivotTables(1).TableRange2
With Selection
Cells(.Row + .Rows.Count - 1, .Column + .Columns.Count - 1).Select
End With
fG
Rolf
Danke, Rolf, danke Franz!
04.08.2006 13:50:36
JürgenH
Ich habe Eure Lösungsansätze mal miteinander kombiniert. Nun läuft es und ich kann beruhigt ins Wochenende.
Jürgen
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige