Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1056to1060
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
Formeln neben dynamischer Pivottabelle
09.03.2009 11:00:28
Bernd
Hallo zusammen,
ich habe mir ein Makro geschrieben, welches aus einer dynamischen Tabelle eine Pivottabelle erstellt. Da immer wieder neue Datensätze aus einer Access-Abfrage hinzukommen, zähle ich die Zeilen und Spalten der Basistabelle, sodaß die Pivottabelle immer alle Datensätze vollständig enthält. Das Makro funktioniert soweit gut. Rechts neben der Pivottabelle möchte ich nun mit Formeln weiterrechnen. Das Problem ist, das die Pivottabelle jeden Monat nach rechts wächst, d.h. die Felder für die Formel verschieben sich (s. screenshot). Wie kann ich das umsetzen? Zeilen und Spalten der Pivottabelle zählen? Wie muss dann das Feld für den 1. Formeleintrag heissen, d.h. wie ermittele ich das 1. Formelfeld? Den rest, daß die Formeln bis zu letzten Zeile kopiert werden, bekomme ich denke ich hin.
Userbild
Danke, Gruß
Bernd

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

Betreff
Datum
Anwender
Anzeige
AW: Formeln neben dynamischer Pivottabelle
09.03.2009 12:36:31
fcs
Hallo Bernd,
eine Aktualisierung des Pivot-Berichts kann dann etwa wie folgt aussehen.
Gruß
Franz

Sub PivotNeuerMonat()
Dim pvTab As PivotTable
Dim wks As Worksheet, lngZeileA As Long, lngZeileE As Long, lngSpaFormel As Long
Set wks = ActiveSheet 'oder auch: Worksheets("Tabelle2")
Set pvTab = wks.PivotTables(1)
With pvTab
'Pivot-tabelle aktualisieren
Application.DisplayAlerts = False
.RefreshTable
Application.DisplayAlerts = True
'Zeilen und Spalte für Formeln ermitteln
'1. Zeile für Formeln
lngZeileA = .RowFields(1).LabelRange.Row + 1
With .TableRange1
'1. Spalte für Formel rechts neben Pivot-Bericht
lngSpaFormel = .Column + .Columns.Count
'Letzte Zeile des Pivot-Berichtes
lngZeileE = .Row + .Rows.Count - 1
End With
End With
With wks
'ggf. Altformeln löschen
If .Cells(lngZeileA - 1, .Columns.Count).End(xlToLeft).Column > lngSpaFormel Then
.Range(.Columns(lngSpaFormel), .Columns(.Cells(lngZeileA - 1, _
.Columns.Count).End(xlToLeft).Column)).ClearContents
End If
'Spaltentitel eintragen
.Cells(lngZeileA - 1, lngSpaFormel).Value = "Veränderung Vormonat"
.Cells(lngZeileA - 1, lngSpaFormel + 1).Value = "Veränderung lfd. Monat"
'Formeln einfügen Vormonat
.Range(.Cells(lngZeileA, lngSpaFormel), .Cells(lngZeileE, lngSpaFormel)).Formula _
= "=R[0]C[-2]-R[0]C[-3]"
'Formeln einfügen lfd. Monat
.Range(.Cells(lngZeileA, lngSpaFormel + 1), .Cells(lngZeileE, lngSpaFormel + 1)).Formula _
= "=R[0]C[-2]-R[0]C[-3]"
'Breite der Formalespalten optimieren
.Range(.Columns(lngSpaFormel), .Columns(lngSpaFormel)).AutoFit
End With
End Sub


Anzeige
AW: Formeln neben dynamischer Pivottabelle
09.03.2009 16:49:47
Bernd
Hallo Franz,
vielen Dank! Mit ein paar kleineren Anpassungen und Rumgespiele hats dann funktioniert!
Gruß, Bernd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige