Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro: Pivot-Bereich = markierte Zellen

Makro: Pivot-Bereich = markierte Zellen
07.12.2006 21:00:36
Ela
Excel X (für Mac OS X 10...)
Hallo an alle Fachleute,
habe zwei Makros, die ich nacheinander ausführen will. Das dritte Makro, mit entsprechenden Call-Befehlen, startet per Button die beiden anderen Makros.
Die Tabelle, für die ich diese Makros benötige, hat eine variable Zeilenzahl, Spalten sind nur von A bis H belegt.
Das 1. Makro markiert automatisch alle belegten Zellen:

Sub Alle_belegten_zellen_markieren()
Range("a1", Range("h65536").End(xlUp)).Select
End Sub

Das 2. Makro, das ich per Aufzeichnung erstellt habe, startet eine Pivot-Tabelle.Es funktioniert alles einwandfrei, bis auf ein wichtiges Detail:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Tabelle1!R1C1:R17516C8", TableDestination:="", TableName:="PivotTable2"
ActiveSheet.PivotTables("PivotTable2").SmallGrid = False
und so weiter.
Das 2. Makro zum Aufruf der Pivot-Tabelle notiert zum Thema Bereich (Welche Daten möchten Sie analysieren) "Tabelle1!R1C1:R17516C8" und nicht "nimm den Bereich, den das 1. Makro zuvor markiert hat".
Wenn die Tabelle beim nächsten Mal nicht 17516, sondern vielleicht 25.858 Zeilen hat, dann berücksichtigt die automatische Pivot-Tabelle nur 17516 Zeilen (von Spalte A-H) und nicht die vorhandenen 25.858.
Wie muss ich das 2. Makro abändern, damit die Pivot-Tabelle immer den Bereich verwendet, den das 1. Makro vorgibt?
Für eure Hilfe herzlichen Dank im voraus.
Viele Grüße
Ela

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Pivottabelle - dynamischer Datenbereich
07.12.2006 21:51:00
Beate
Hallo Ela,
das erste Makro ist überflüssig, wenn du den Bereich im zweiten Makro so dynamisierst:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"=OFFSET(Tabelle1!$A$1,,,COUNTA(Tabelle1!$A:$A),8)", TableDestination:="", TableName:="PivotTable2"
ActiveSheet.PivotTables("PivotTable2").SmallGrid = False
Die Formel verstehst du, wenn du das liest: Pivottabelle - Dynamischer Datenbereich
Gruß,
Beate
AW: Pivottabelle - dynamischer Datenbereich
07.12.2006 22:24:04
Ela
Liebe Beate,
vielen Dank für deinen Tipp.
Ich habe nun in der entsprechenden Datei per Einfügen/Namen/Definieren den Namen OFFSET eingesetzt und im Feld "bezieht sich auf" =BEREICH.VERSCHIEBEN(Tabelle1!$A$2;;;ANZAHL2(Tabelle1!$A:$A);ANZAHL2(Tabelle1!$2:$2))eingefügt.
Weiterhin habe ich das 2. Makro (Pivot) so geändert, wie du es vorgeschlagen hast:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"=OFFSET(Tabelle1!$A$1;;;COUNTA(Tabelle1!$A:$A),8)", TableDestination:="", TableName:="PivotTable2"
Leider startet der Debugger und meldet:
Laufzeitfehler '1004!:
PivotTable-Quelldatei 'OFFSET(Tabelle1' kann nicht geöffnet werden.
dann werden im Debugger diese beiden Code-Zeilen gelb markiert dargestellt:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"=OFFSET(Tabelle1!$A$1,,,COUNTA(Tabelle1!$A:$A),8)", TableDestination:="", TableName:="PivotTable2"
Sicher mache ich irgendetwas falsch, aber was?
Dankeschön
Ela
Anzeige
AW: Pivottabelle - dynamischer Datenbereich
07.12.2006 22:52:19
Beate
Hallo Ela,
du hast ja den Namen OFFSET definiert. Dann setze den mal so im Code ein:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"OFFSET", TableDestination:="", TableName:="PivotTable2"
ActiveSheet.PivotTables("PivotTable2").SmallGrid = False
Wenn das nicht hilft, würde ich dir raten, die Datei mal hochzuladen.
Grüße,
Beate
AW: Pivottabelle - dynamischer Datenbereich
07.12.2006 23:04:34
Ela
Liebe Beate,
leider kommt nur der Hinweis "Verweis ungültig". Wieder sind die beiden ersten Tabellenzeilen in Makro2 im Debugger gelb hinterlegt.
Kann es sein, dass es daran liegt, dass die Tabelle grundsätzlich leer ist. Ich muss sie so gestalten, dass mein Chef aus einer cat-Datei Daten kopiert, diese in die Excel-Tabelle einfügt und dann den "Start-Knopf" drückt. Die Daten sind also vor dem Ablauf des Makros noch nicht in der Excel-Tabelle gespeichert. Vielleicht kann der Pivot-Bereich OFFSET aus diesem Grunde nicht gefunden werden?
Die Datei selbst ist schreibgeschützt, sie soll nur dazu dienen, dass relevante Daten eingeladen und automatisch bearbeitet werden. Speichern ist nur unter "Speichern unter" möglich, damit die Original-Excel-Datei unbehelligt bleibt und damit frei für andere Cat-Dateien.
Vielen Dank für deine Geduld
Herzliche Grüße von
Ela
Anzeige
AW: Pivottabelle - dynamischer Datenbereich
07.12.2006 23:30:13
Beate
Hallo Ela,
ohne Daten gibt es den Bereich wirklich nicht ::))
Mach dir doch mal eine Kopie der Datei und fülle sie mit Beispieldaten und probiere dann.
Wenn du siehst, dass es läuft, dann sollte der Name in der Rohlingsdatei definiert werden sowie das Makro enthalten sein. Wenn die Datei dann befüllt ist, gibt es auch den dynamischen Bereich und das Makro müsste funktionieren.
Gruß,
Beate
kleine Korrektur
08.12.2006 11:10:40
Beate
setze den Blattnamen in Makro auf Sheets("Bilanz Messwerte") zurück, den Unterstrich hatte ich zu Testzwecken drin.
Gruß,
Beate
Der letzte Beitrag gehörte nicht hierhin. OwT
08.12.2006 19:51:21
Beate
AW: kleine Korrektur
08.12.2006 19:52:58
Ela
Liebe Beate,
deine Formel hat einwandfrei funktioniert. Ganz, ganz herzlichen Dank für deine sehr kompetente und freundliche Hilfe.
Heute morgen hat es endlich "klick" gemacht. Ich hatte den Fehler begangen, die Prozedur der Namensvergabe (Einfügen/Name) in der leeren Datei zu definieren und zu speichern. Dann Tabelle füllen und Makro ablaufen lassen ... dass ich so hirnrissig war, kannst du ja nicht ahnen :-)).
Jetzt habe ich die Prozedur der Namensvergabe ganz korrekt gleich als erstes in das Makro für die Pivot-Tabelle geschrieben und et voilà - die schönsten Ergebnisse tun sich auf.
Viele Grüße
Ela
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige