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

Dynamische Pivotabelle

Dynamische Pivotabelle
08.02.2006 10:56:05
Paul
Hallo,
ich habe ein Problem mit dem Macro "Start" in der Datei: https://www.herber.de/bbs/user/30788.xls Das sind die Pivotabellen. Beide holen sich ihre Daten ab, allerdings koennte es sein das die Daten nach unten und nach rechts zunehmen oder abnehmen. Wie kann man es einstellen, das die Pivottabelle automatisch erkennt wie viele Daten da sind und diese Daten dann beruecksichtigt? Zur Zeit ist der Wert fest: SourceData:= _
tabneu1.Name & "!R1C1:R28C3") also R1C1:R28C3.
Paul

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Pivotabelle
08.02.2006 11:10:34
Susanne
Hallo Paul,
du suchst dir in deiner Basisdatei eine Zelle aus der du über Einfügen - Namen - definieren z.B. den Namen Dateiende gibst. Dann gibst du in diese Zelle folgendes ein:
=ANZAHL2(Tabelle1!$A:$A)-1 (die -1 zieht Zeilen bis zur Überschrift ab).
Dann gehst du zu Einfügen - Namen - definieren und wählst einen neuen Namen z.b. Bereich.Bei bezieht sich auf gibst du folgendes an:
=BEREICH.VERSCHIEBEN(Tabelle1!$A$2;;0;Dateiende;26)
die 26 bedeutet dass meine Tabelle 26 Spalten hat.
Und nun kannst du in deinem Makro über die Namen Bereich und Dateiende die Daten für die Erstellung der Pivottabelle zuweisen. Bei mir schaut der Code so aus:
'Pivotbereich zuweisen
ActiveWorkbook.Names.Add Name:="Bereich", RefersToR1C1:= _
"=OFFSET(Tabelle1!R2C1,,0,Dateiende,26)"
ActiveWorkbook.Names.Add Name:="Dateiende", RefersToR1C1:="=Tabelle1!R1C26"
Du musst sie dan im Makro noch auffrischen, damit sie sich den neuen Bereich holen.
' Pivottabellen auffrischen
Sheets("Pivot_Tabelle").Select
Range("A1").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
Gruß
Susanne
Anzeige
AW: Dynamische Pivotabelle
08.02.2006 11:17:26
Paul
Hallo Susanne,
.. ich muss das erst mal verarbeiten und dann sag ich dir bescheid ob ich es umsetzen konnte. Danke aber fuer deine Hilfe!
Gruss Paul
AW: Dynamische Pivotabelle
08.02.2006 11:41:34
Paul
Hallo Susanne,
da habe ich doch noch eine Frage an sich. Ich arbeite auf ein englischsprachiges Offieceprodukt und die Befehle ANZAHL, BEREICH.VERSCHIEBEN, Dateiende sind im englischen nicht vorhande. Kennst du die Begriffe, die Execel im englischen benutzt?
Paul
AW: Dynamische Pivotabelle
08.02.2006 12:06:47
Susanne
Hallo Paul,
musste mein Excel erst auf englisch umstellen um deine Frage beantworten zu können.
1. Dateiende ist ein von mir vergebener Begriff über Namen definieren. Den kannst du nennen wie du willst.
2. Bei der Funktion Anzahl2 verwendet Excel im Englischen den Begriff : counta
3. Bei der Funktion Bereich.verschieben den Begriff : offset
Du mußt das ermittelte Dateiende über einen festen Namen in der Funktion Bereich.verschieben angeben,, sonst läuft er in deinem Makro auf Fehler.
Hast du keine Möglichkeit über Start - Office Applications - Microsoft Officetools - Microsoft Office Language settings - aktivierte Sprachen: das Ganze auf Deutsch umzusetzen?
LG
Susanne
Anzeige
AW: Dynamische Pivotabelle
08.02.2006 12:16:41
Paul
Hallo Susanne,
die Sprache kann ich umstellen, wie es scheint, allerdings ist das Macro nur ein kleiner Teil einer Groesseren Macroansammlung in einer Datei die ich dann weiterreichen muss - und dort ist die Sprache in englisch. Deswegen muss ich auch immer rumhantieren. Es sei denn, beim Umstellen der Sprache aendert Excel auch die Inhalte in den Macros, aber das glaube ich nicht... Wie dem auch sein, danke fuer deine Hilfe, ich werde jetzt erst mal essen gehen... und dann an diesem speziellen Fall weiteraarbeiten!
Gruesse Paul
AW: Dynamische Pivotabelle
08.02.2006 13:49:14
Paul
Hallo Susanne,
.. also ab dem Punkt mit "Dann gehst du zu Einfügen - Namen - definieren und wählst einen neuen Namen z.b. Bereich.Bei bezieht sich auf gibst du folgendes an:
=BEREICH.VERSCHIEBEN(Tabelle1!$A$2;;0;Dateiende;26)" lauft es nicht mehr. Erstens habe ich folgedens umgeschrieben (=offset(Input!$A$2;;0;Dateiende;26)) und (=counta(Tabelle1!$A:$A)-1). In einer Zeile im Sheet "Input" habe ich den Namen "Dateiende " definiert und dann die Formel eingetragen. In der Zeile drunter habe ich dann den Namen "Bereich" definiert und die andere Formel eingetragen, aber das hat bereits nicht funktioniert. Und, was meinst du mit "Bei bezieht sich auf..."?
Paul
Anzeige
AW: Dynamische Pivotabelle
08.02.2006 23:47:42
Daniel
Hallo Paul
kleiner Tip von mir:
Die Dynamischen Namen mit Formeln sind zwar sehr mächte Werkzeuge, aber sperrig und unkomfortabel im Umgang und vorallem beim Debuggen, wenns mal Probleme gibt.
Verwende lieber den zweiten Ansatz von Susanne, die Namen per Makro erstellen und zu aktualisieren.
Die automatisch Anpassung der Namen erreichst du dadurch, daß du den Code dazu Ereignsigesteuert direkt zur Tabelle schreibst.
Beispiel:

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.Names.Add Name:="Testname", RefersTo:="='" & Parent.Name & "'!" & Range("A1").currentegion.address
End Sub

(Die Funktion Parent.Name ermittelt automatisch den Namen des Tabellenblatts)
Gruß, Daniel
Anzeige
AW: Dynamische Pivotabelle
09.02.2006 08:37:11
Susanne
Hallo Paul,
der Punkt mit Dateiende ist in Ordnung.
Der Punkt Bereich mit Bereich.verschieben wird keiner Zelle zugeordnet, sondern nur im Hintergrund definiert. Den Punkt Dateiende musst du in einer Zelle definieren, damit er das Ergebnis der gezählten Zeilen irgendwohin schreiben kann, um es dann in Punkt 2, nämlich bei der Definition des Bereiches mit Bereich.verschieben, zu verwenden.
Den Bereich hingegen musst du mit Namen definieren damit du ihn im Makro ansprechen kannst, ansonsten steigt dir das Makro beim Erstellen der Pivottabelle aus.
Ich weiss es ist nicht so ganz einfach...hat mich auch ein paar Tage rumprobieren gekostet bis es funktioniert hat. Aber jetzt läuft es dafür! ;-))
LG
Susanne
Anzeige
AW: Dynamische Pivotabelle
09.02.2006 08:58:21
Susanne
...sorry...habe die Frage nach dem 'bezieht sich auf ' nicht beantwortet:
Wenn du Einfügen - Namen - Definieren machst, dann gibst du oben in der Maske die dann erscheint den Namen an und unten in der Maske den Bereich auf den er sich bezieht. In diesem Fall musst du dort sagen : =Bereich.verschieben etc...
AW: Dynamische Pivotabelle
09.02.2006 09:01:42
Paul
Hallo Susanne,
werde mich im laufe des Tages damit befassen, sage dir dann bescheid ob ich es hingekriegt habe.
Paul

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige