Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
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

Makro zerschießt die Pivottabelle

Makro zerschießt die Pivottabelle
22.01.2009 16:15:40
J.

Hallo zusammen,
ich habe ein Makro programmiert, das Anfangs gut funktionierte.
Und zwar habe ich ein Tabellenblatt erstellt inkl. einer Pivottabelle. Durch Auswahl einer DropandDown-Liste werden automatisch andere Daten gezogen.
Nun habe ich eine Makro geschrieben, bei dem automatisch ein Wert aus der DropandDownliste ausgewählt wird, dann wird das Tabellenblatt kopiert, eine neues Excel-Dokument geöffnet, die Daten eingefügt, unter einem Namen automatisch gespeichert und geschlossen.
Das Makro ist so programmiert, dass es hintereinander auf diese Weise 100 Dateien erstellt.
Das war super. Ich musste die Dateien nicht mehr per Hand erstellen und abspeichern. 15 Minuten war das Makro fertig und meine 100 Dateien erstellt.
Nun funktioniert es aber nicht 100%.
Irgendwie zerschießt das Makro mir die Pivottabelle, sodass die Tabelle nicht mehr die richtigen Werte zieht.
Es wählt zwar in der DropandDown-Liste den Wert aus, jedoch die Pivottabelle zieht andere Werte, obwohl der Datenbereich richtig ist. Sehr seltsam.
Es werden Daten gezogen, die zu einem anderem Auswahlpunkt gehören ausgewählt.
Und das komische ist auch, dass nicht alle Werte falsch gezogen werden.
Kann mir irgendjemand helfen?
Hier meine Programmierung
-------------------------------------------------
Option Explicit
Const field = "A1:H80"
Const chartname = "test"
Const location = "n:\"
Const choice1 = "D11100"
Const choice2 = "D12100"
Const choice3 = "D13100"
Const choice4 = "D15100"
Const choice5 = "D21100"
.....
Sub test()
Application.ScreenUpdating = False
ActiveSheet.PivotTables("PivotTable2").PivotFields("D").CurrentPage = choice1
range(field).Select
Selection.Copy
Call Format
ActiveWorkbook.SaveAs Filename:=location & range("c1") & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
Windows(chartname).Activate
ActiveSheet.PivotTables("PivotTable2").PivotFields("D").CurrentPage = choice2
range(field).Select
Selection.Copy
Call Format
ActiveWorkbook.SaveAs Filename:=location & range("c1") & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
Windows(chartname).Activate
ActiveSheet.PivotTables("PivotTable2").PivotFields("D").CurrentPage = choice3
range(field).Select
Selection.Copy
Call Format
ActiveWorkbook.SaveAs Filename:=location & range("c1") & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
....
Ich bin kein Profi, vielleicht kennt sich jemand besser damit aus. Vielleicht ist die Programmierung nicht einwandfrei?!!
Hoffe es kann mir jemand helfen.
Vielen Dank
J.Wagner

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ein Schuss ins Blaue
22.01.2009 16:25:07
magicman
Hallo,
kann es sein das unter Tabellenoptionen das aktualisieren der Daten im Hintergrund zugelassen ist?
Dann ist es möglich, dass deine Pivot noch nicht "fertig" ist mit Umstellen wenn du die Daten kopierst.
Jedenfalls war das mal ein Fehler bei mir als ich auf Externe Daten zugegriffen habe.
Ein Makro schubste die Aktualisierung an aber die lief dann im Hintergrund wärend VBA artig jede Menge (alte) Daten in die Zieltabellen gepustet hat.
Gruß
Michael
AW: ein Schuss ins Blaue
23.01.2009 09:50:53
J.
Vielen Dank erst einmal...
ich hab mal in meinen Tabellenoptionen nachgeschaut.....
Also wenn du "Beim Öffnen aktualisieren" meinst, dass habe ich nicht eingestellt...
Das Problem ist auch,dass wenn das Makro fertig ist und ich mir die Daten in der Pivottabelle noch einmal anschaue Und selbst wenn ich die Daten noch einmal aktualisiere, zieht er sich teilweise nicht die richtigen Daten. Obwohl der Zielbereich richtig ist....
Also ich müsste jetzt die Pivottabelle löschen und eine Neue erstellen, damit die richtigen Daten gezogen werden.....
Anzeige
AW: ein Schuss ins Blaue
23.01.2009 09:52:00
J.
Vielen Dank erst einmal...
ich hab mal in meinen Tabellenoptionen nachgeschaut.....
Also wenn du "Beim Öffnen aktualisieren" meinst, dass habe ich nicht eingestellt...
Das Problem ist auch,dass wenn das Makro fertig ist und ich mir die Daten in der Pivottabelle noch einmal anschaue Und selbst wenn ich die Daten noch einmal aktualisiere, zieht er sich teilweise nicht die richtigen Daten. Obwohl der Zielbereich richtig ist....
Also ich müsste jetzt die Pivottabelle löschen und eine Neue erstellen, damit die richtigen Daten gezogen werden.....
AW: ein Schuss ins Blaue
23.01.2009 10:40:15
magicman
Hallo,
die Daten sind also in der Excel-Tabelle vorhanden.
Werden diese Daten aus einer externen Datenquelle eingelesen? Da kann auch dieser Effekt auftreten.
Wenn der Zielbereich stimmt und die Daten alle richtig sind, kann ich mir nur vorstellen, das über die Kriterienauswahl Daten ausgeblendet sind, die eigentlich in die Auswertung gehören.
Wenn z.B. eine Kostenstelle "4711" ausgewertet werden soll und die Pivot nur "4711" anzeigt, werden z.B. DAten ignoriert die auf KST "4711 " (mit 1 Leerzeichen) gebucht sind.
Gruß
Michael
Anzeige
AW: ein Schuss ins Blaue
23.01.2009 11:55:00
J.
Hi,
ne die Daten kommen nicht aus einer externen Datenquelle
Das hatte ich auch schon überlegt....
Also nachdem ich das Makro laufen lassen habe.
Habe ich in der DropandDown - Liste der Pivottabelle per "Hand" die Kostenstellen 3610 eingestellt. Das Problem ist jetzt er zieht die Werte von 3600. Also im Zielbereich stehen diese Daten untereinander....Wenn ich nun die Daten aktualisiere. Tut sich nichts. Wenn ich mit Doppelklick die Daten in der Pivottabelle anklicke, öffnet sich ein Arbeitsblatt und da steht auch als Referenz, Kostenstelle 3600.
Ich vermute irgendwie, dass das Makro zu "schnell" ist und dann die Daten nicht richtig gezogen werden. Weil das Makro wählt als erstes 3600 aus, kopiert alles und fügt es in eine neue Datei ein und als nächstes wählt es 3610, kopiert alles...etc. Und dann stehen in beiden neuen Dateien die Daten von 3600 Vielleicht hängt das damit irgendwie zusammen....
Aber das Komische ist auch das größtenteils die richtigen Daten gezogen werden...
Vielen Dank
Anzeige
AW: ein Schuss ins Blaue
23.01.2009 15:17:55
Luschi
Hallo J. Wagner,
wenn man per Vba in Pivottabellen Werte Umstellt, dann sollte man auch die Pivottabelle aktualisieren:
'Aktualisierung erfolgt nicht im Hintergrund, dadurch muß das Makro warten
'bis die Aktualisierung abgeschlossen ist
Worksheets(1).PivotTables("Pivot1").PivotCache.BackgroundQuery = False
'Pivottabelle aktualisieren
Worksheets(1).PivotTables("Pivot1").PivotCache.Refresh
Gruß von Luschi
aus klein-Paris

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige