Excel Makro mit Pivot Tabelle funktioniert nicht

Hallo,

ich habe ein Problem:

Ich bekomme jeden Tag eine Tabelle mit gleichen Spalten und Überschriften.
(geht hier um Kunden mit offenen Salden…)

Nur die ANzahl der Zeilen ist unterschiedlich.

Ich muss mir hier Daten rausfiltern (Kundennummer, Anzahl , SUmmen…)

Dies mache ich indem ich die Teilergebnisse ausblende und dann
über eine Pivottabelle die wichtigen Daten rausfiltere.

Jetzt wollte ich das als Makro machen, aber er wirft mir immer fehler aus.

Es ist immer nur ein Arbeitsvblatt („Saldenliste mit Datum dahinter“) welches
täglich einen neuen Namen hat.

Ich füge auch den VBA COde ein, muss aber dazu sagen das ich dahingegend
nur sehr rudimentäre Kenntnisse habe und somit Laie bin. Sonst sind meine Excel Kenntnisse normal für einen Bürohengst

vielleicht könnt ihr mir helfen

Der VBA COde ist folgender:

Sub Horus()

Selection.RemoveSubtotal
Cells.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
„‚Saldenliste 20110525‘!C1:C11“).CreatePivotTable TableDestination:="", _
TableName:=„PivotTable1“, DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables(„PivotTable1“).AddFields RowFields:=Array( _
„hdl_bb3_nr“, „Daten“)
With ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„Vertrags-nr“)
.Orientation = xlDataField
.Position = 1
.NumberFormat = „#.##0
End With
With ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„saldo_eur“)
.Orientation = xlDataField
.Caption = „Summe von saldo_eur“
.Function = xlSum
.NumberFormat = „#.##0,00“
End With
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars(„PivotTable“).Visible = False
Range(„B3“).Select
With ActiveSheet.PivotTables(„PivotTable1“).DataPivotField
.Orientation = xlColumnField
.Position = 1
End With
End Sub


PS: er wirft immer den Fehler aus

Saldenliste 20010525 kann nicht geöffnet werden
sicher weil das Arbeitsblatt in der neuen Liste 20110526 heisst

aber auch wenn ich das umbenenne Saldenliste 20010525
kommt dann ein Fehler:

Die AddFields-Methode des Pivot-Table-Objekts konnte nicht ausgeführt werden

Mit Makros kann ich nicht weiter helfen.

Sorry EGS

Hallo sgille
Ich wurde zwar für ein „Expert Statement“ angefragt, bin aber selber absoluter Anfänger. Sorry, aber kann Dir beim besten Willen nicht weiterhelfen:

Gruess Roger1269

Tut mir leid. Da habe ich auch keinen Rat. Finde den Fehler nicht.

Guten Tag,

Hallo,

ich habe ein Problem:

Ich bekomme jeden Tag eine Tabelle mit gleichen Spalten und
Überschriften.
(geht hier um Kunden mit offenen Salden…)

Nur die ANzahl der Zeilen ist unterschiedlich.

Ich muss mir hier Daten rausfiltern (Kundennummer, Anzahl ,
SUmmen…)

Dies mache ich indem ich die Teilergebnisse ausblende und dann
über eine Pivottabelle die wichtigen Daten rausfiltere.

Jetzt wollte ich das als Makro machen, aber er wirft mir immer
fehler aus.

Es ist immer nur ein Arbeitsvblatt („Saldenliste mit Datum
dahinter“) welches
täglich einen neuen Namen hat.

Ich füge auch den VBA COde ein, muss aber dazu sagen das ich
dahingegend
nur sehr rudimentäre Kenntnisse habe und somit Laie bin. Sonst
sind meine Excel Kenntnisse normal für einen Bürohengst

vielleicht könnt ihr mir helfen

Der VBA COde ist folgender:

Sub Horus()

Selection.RemoveSubtotal
Cells.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:= _
„‚Saldenliste 20110525‘!C1:C11“).CreatePivotTable
TableDestination:="", _
TableName:=„PivotTable1“,
DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard
TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables(„PivotTable1“).AddFields
RowFields:=Array( _
„hdl_bb3_nr“, „Daten“)
With
ActiveSheet.PivotTables(„PivotTable1“).PivotFields("Vertrags-nr
")
.Orientation = xlDataField
.Position = 1
.NumberFormat = „#.##0
End With
With
ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„saldo_eur“)
.Orientation = xlDataField
.Caption = „Summe von saldo_eur“
.Function = xlSum
.NumberFormat = „#.##0,00“
End With
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars(„PivotTable“).Visible = False
Range(„B3“).Select
With ActiveSheet.PivotTables(„PivotTable1“).DataPivotField
.Orientation = xlColumnField
.Position = 1
End With
End Sub



PS: er wirft immer den Fehler aus

Saldenliste 20010525 kann nicht geöffnet werden
sicher weil das Arbeitsblatt in der neuen Liste 20110526
heisst

aber auch wenn ich das umbenenne Saldenliste 20010525
kommt dann ein Fehler:

Die AddFields-Methode des Pivot-Table-Objekts konnte nicht
ausgeführt werden

Hallo, ich hatte ein ähnliches Problem beim generieren von Pivot-Tabellen per Makro. Auch in meiner Tabelle befindet sich immer eine unterschiedliche Anzahl von Zeilen. Ich habe mir, nachdem das mit dem Makro-aufzeichnen nicht so recht funzte, ein Makro von Hand geschrieben. Es passt sicherlich nicht genau zu deinem Problem, aber du wirst feststellen, dass es, im Gegensatz zu dem aufgezeichneten Murks, relativ einfach ist. Vielleicht kannst du dir aus meinem Code ein paar Ideen holen. Die folgenden Zeilen sind Bestandteil eines relativ komplizierten Makros und geben nur den Bereich PIVOT-Tabelle erzeugen wieder.

’ 1. PIVOT „Konto“ erzeugen
Set ptCache = ActiveWorkbook.PivotCaches.Add _
(SourceType:=xlDatabase, SourceData:=„H1:R“ & ActiveSheet.UsedRange.Rows.Count)
Set ptTable = ptCache.CreatePivotTable _
(TableDestination:="", TableName:=„PIV_Konto“)
With ptTable
.PivotFields(„Konto“).Orientation = xlRowField
.PivotFields(„Bestandswert“).Orientation = xlDataField
End With
Sheets(1).Name = „PIV_Konto“
Columns(„B:B“).Select
Selection.NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
Selection.Copy
Columns(„C:smiley:“).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Columns(„A:smiley:“).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„D3“).Select
ActiveCell.FormulaR1C1 = „=RC[-1]-RC[-2]“
Range(„D3“).Select
=====E=N=N=D===

Good luck :wink:
Mario