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

Pivottabelle per Makro

Pivottabelle per Makro
Drees
Hallo,
ich probiere 50 Pivottabellen per Makro zu erstellen, bekomme aber immer eine Fehlernmeldung:
runtimeError 9
Subscipt out of range
Die Pivottabellen sollen im Tab "PivotKonten" untereinander in Spalte B angefangen bei Zeile 4 erstellt werden. Die Datenquelle befindet sich jeweils in dem Tab "Übersicht Konten" und rutscht immer eine Spalte nach rechts.
Woran liegt der Fehler?
Viele Grüße
Alex
Hier mein Code
For i = 1 To 50
Tabellenname = i
Sheets("PivotKonten").Select
Range("a4").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(R4C2:R1991C2,"""")" 'Berechnet Startzeile für nächste Tabelle
positionszeile = Cells(4, 1).Value + 4 'Erste Tabelle startet in Zeile 4
Srcdta = "Übersicht Konten!R4" & "C" & i + 2 & ":R10000C" & i + 2
Position = "PivotKonten!R" & positionszeile & "C2"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Srcdta, Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:=Position, TableName:=Tabellenname, DefaultVersion _
:=xlPivotTableVersion12
'hier kommen noch die Einzelheiten der Tabelle, der Code bricht aber vorher ab
Next

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

Betreff
Benutzer
Anzeige
AW: Pivottabelle per Makro
12.04.2012 04:48:17
fcs
Hallo Alex,
ich hab mal etwas in der Pivot-Suppe unter VBA gestochert und rumgesucht.
Das Problem ist kaum sichtbar. Der Name des Pivottabellenberichts darf keine Zahl/nummerischer Wert sein. Es muss ein Text sein, dabei darf der Text durchaus nur aus Ziffern bestehen.
Hier das Ergebnis meiner Probiererei. Ich hab da einiges geändert. Entscheidend ist aber die Deklaration der Variablen für den Tabellenamen als String und die entsprechende Wertzuweisung.
Gruß
Franz
Sub aaTest()
Dim i As Integer, positionszeile As Long
Dim Tabellenname As String, Srcdta As String, Position As String
Dim wksData As Worksheet, wksPivot As Worksheet
Set wksData = Worksheets("Übersicht Konten")
Set wksPivot = Sheets("PivotKonten")
wksPivot.Select
'Berechnet Startzeile für Tabelle
wksPivot.Range("A4").FormulaR1C1 = "=COUNTIF(R4C2:R10000C2,"""")"
For i = 1 To 50
wksPivot.Range("A4").Calculate
Tabellenname = CStr(i)               'Name der Pivottabelle muss ein String sein!!!
positionszeile = wksPivot.Cells(4, 1).Value + 4 'Erste Tabelle startet in Zeile 4
With wksData
Srcdta = .Name & "!" & _
.Range(.Cells(4, i + 2), .Cells(10000, i + 2)).Address(ReferenceStyle:=xlR1C1)
End With
Position = wksPivot.Name & "!R" & positionszeile & "C2"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Srcdta, _
Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=Position, _
TableName:=Tabellenname, DefaultVersion:=xlPivotTableVersion12
'Pivot-Feld im Datenbereich hinzufügen
With wksPivot.PivotTables(Tabellenname)
.AddDataField .PivotFields(wksData.Cells(4, i + 2).Text), _
"Summe " & wksData.Cells(4, i + 2).Text, xlSum
End With
Next
Set wksData = Nothing
End Sub

Anzeige
AW: Pivottabelle per Makro
12.04.2012 09:52:00
Drees
Hallo Franz,
vielen Dank für deine Antwort und die Mühen.
So funktioniert es und ich habe wieder was gelernt :)
Danke und Gruß
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige