Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Pivot Datenquelle automatisch anpassen (VBA?)
#1
Hey zusammen,

ich habe ein Input-Sheet, was laufend um weitere Zeilen erweitert wird (derzeit ca. 1600).

Die Daten hieraus übernehme ich per Verweis in ein Zwischen-Sheet. Dann markiere ich per
Makro vom Ende bis zum Anfang der Tabelle alle Zellen und füge diese als Werte in Spalte
A-M des Ziel-Sheets wieder ein.
Spalte N-W desselben Sheets ist mit einem Pivot-Datenblatt mit 4 Tabellen verknüpft.

Diese beiden Sheets ("Ziel-Sheet" und "Pivot-Datenblatt") exportiere ich mit demselben
Makro in unregelmäßigen Abständen in eine NewName.xlsm (.xlsx klappt schon, hoffentlich
auch bald .xlsm).

Danach muss ich bisher immer manuell die NewName.xlsm aufrufen und für alle 4 Pivot-
Tabellen die Pivot-Datenquelle anpassen...
...und genau das würde ich super gern automatisieren, damit die Ausführung des Makros
eine fertige Datei abliefert, die eben nicht mehr angepasst werden muss.

Hat jemand von Euch eine Idee, wie das wohl gehen könnte?

LG
Antworten Top
#2
Hallo,

Daten  Alle Aktualisieren

im  VBA  mit -->   ActiveWorkbook.RefreshAll

aber du  meinst  sicher erstmal  passt die  DatenQuelle nicht d.h. dein Bezug A:.. bis    passt nicht  mehr

oder ?

Du brauchst hier einen Namen z.B.

Rohdaten = Bereich.Verschieben($A$1;0;0;Anzahl2(A:A);Anzahl2(1:1))

Mein Bspl. geht von A1 aus und das hier die Spalte A mit Werten gefüllt ist und die erste Zeile (SpaltenKopf) ist .

Range("Rohdaten") .. baust du in dein Makro ein und/ oder auch als DatenQuelle bei den Pivots

Der Bereich Rohdaten wird automatisch immer angepasst .

Versuchs mal
Antworten Top
#3
Hey,

genau, die Datenquelle ist bei der NewName.xlsm leider noch immer die '\Dateipfad\[NochGeöffneteUrsprungsdatei.xlsm]Ziel-Sheet'!$A$1:$C$1600,
statt diese direkt in '\Dateipfad\[NewName.xlsm]Ziel-Sheet'!$A$1:$C$1600' bzw dann in 'Ziel-Sheet'!$A$1:$C$1600 zu ändern.
Und genau das hätte ich gern im Makro.

Habe bereits eins aufgenommen, das mit festem Dateinamen funktioniert, jedoch funktioniert es nicht, wenn sich der Name der Datei immer dem
aktuellen Datum anpasst.

Ich kopiere mal eine Muster-Version der VBA-Textzeile hier rein:

ActiveSheet.PivotTables("PivotTable6").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "\Dateipfad\[NewName.xlsm]Ziel-Sheet!R2C1:R10000C15" _
        , Version:=xlPivotTableVersion14)
So ist es jetzt, mit einem festen Dateinamen würde es auch schon funktionieren, aber am alleroberliebsten würde ich ja die Datei mit heutigem Datum
erstellen wollen und natürlich auch toll finden, wenn das Makro ebenfalls weiß, dass es sich um die Datei mit dem aktuellen Datum dreht, in der die
Datenquellen der PivotTables angepasst werden müssen.

Wie ich eine Datei mit Datum erstellen kann, weiß ich:
With ActiveWorkbook
     .SaveAs Filename:="\Dateipfad\" & Datum & "_NewName.xlsm" _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Aber diesen dynamischen Dateinamen in die "\Dateipfad\[NewName.xlsm]Ziel-Sheet!R2C1:R10000C15" mit einzubauen, gestaltet sich schwierig...
dazu jemand eine Idee?
Muss ich einfach sozusagen doppelte Anführungszeichen nehmen, also wie beim Klammer-in Klammer-Prinzip: x(y+(1+1)) ? (Anmerkung: Funzt nicht, hab es gerade probiert.)
Bisher habe ich probiert:
"\Dateipfad\"[ & Datum & "_NewName.xlsm]Ziel-Sheet!R2C1:R10000C15"
"\Dateipfad\" & [Datum & "_NewName.xlsm]Ziel-Sheet!R2C1:R10000C15"
"\Dateipfad\[" & Datum & "_NewName.xlsm]Ziel-Sheet!R2C1:R10000C15"
- erwartungsgemäß mit Fehlermeldung, weil er nicht erkennt, dass [ zu dem ] nach dem Dateinamen gehört und behauptet, ] sei ein ungültiges
Zeichen.

Aber ich habe keine Idee mehr, wie es noch gehen könnte - außer eben den Namen wieder statisch zu machen und danach manuell zu
verändern.  Hoffe auf einen besseren Vorschlag von einem von Euch Pros :)
LG
Antworten Top
#4
(24.04.2018, 18:09)Dieter63 schrieb: Hallo,

Daten  Alle Aktualisieren

im  VBA  mit -->   ActiveWorkbook.RefreshAll

Hey,

die Zeile hab ich unabhängig davon auch schon drin, ja.
Danke! :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste