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

On Error Behandlung schlägt fehl

On Error Behandlung schlägt fehl
05.02.2020 17:03:30
haze
Hallo zusammen,
die letzte halbe Stunde habe ich mich mit nichts anderem befasst und leider keine Lösung im Netz gefunden, die funktioniert.
Nachfolgender Code scheitert an der "GoError Resume Next" Passage und ich verstehe nicht, _
weshalb die Aussetzung der Fehlermeldung nicht funktioniert:

Sub Refresh()
Dim Monatseingabe As Integer
On Error Resume Next
'## Dateien aktualisieren
Sheets("Database").Select
Sheets("Database").Range("A2").Select '/Datenverbindung Power Query aktualisieren
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
For Each Pvts In ActiveWorkbook.PivotCaches '/ konkreter Befehler zur Pivot Aktualisierung
Pvts.Refresh
Next
'## Abfrage, um welchen Monat es sich handelt
Monatseingabe = InputBox("Bitte Monat des Berichts angeben:") '/Abfrage des Berechnungsmonats fü _
_
_
_
r weitere Berechnungen
If Monatseingabe = "1" Then
On Error Resume Next
ActiveSheet.PivotTables("CCReport").PivotFields("FC").Caption = "Trend" 'Pivot Spalte  _
umbenennen
ActiveSheet.PivotTables("CCReport").CalculatedFields("act. Month").StandardFormula = "=   _
_
_
_
Januar"   'Act. Month
ActiveSheet.PivotTables("CCReport").CalculatedFields("act. Month").StandardFormula = "=   _
_
_
_
Januar"   'YTD cum.
ActiveSheet.PivotTables("CCReport").CalculatedFields("act. Month").StandardFormula = "=   _
_
_
_
Invoices.01.01.2019"   'PY YTD cum.
ActiveSheet.PivotTables("CCReport").CalculatedFields("VS").StandardFormula = "=Januar*12" _
_
_
_
'Trend
Else
If Monatseingabe = "2" Then
On Error Resume Next
ActiveSheet.PivotTables("CCReport").PivotFields("FC").Caption = "Trend" 'Pivot Spalte  _
umbenennen
On Error GoTo 0
ActiveSheet.PivotTables("CCReport").CalculatedFields("act. Month").StandardFormula = "=   _
_
_
_
Februar"   'Act. Month
ActiveSheet.PivotTables("CCReport").CalculatedFields("act. Month").StandardFormula = "=   _
_
_
_
Januar+Februar"   'YTD cum.
ActiveSheet.PivotTables("CCReport").CalculatedFields("act. Month").StandardFormula = "=   _
_
_
_
Invoices.01.01.2019+Invoices.01.02.2019"   'PY YTD cum.
ActiveSheet.PivotTables("CCReport").CalculatedFields("VS").StandardFormula = "=((Januar+  _
_
_
_
Februar)/2)*12"   'Trend
Else
End If
End If
End Sub

Das Pivot Feld "Trend" soll nur in den ersten 3 Monaten "Trend" heißen, für alle anderen würde ich hier die Spalte in "FC" benennen, daher der Code. Ab Monat 4 ändert sich dann auch die Berechnung, was aber unkritisch sein dürfte.
Nun erscheint (trotz der "On Error" Behandlung) der Laufzeitfehler 1004. Wie lässt sich der abschalten bzw. der Code bei Fehler einfach überspringen?
Es handelt sich bestimmt um ein gängiges Problem, unter der Suchfunktion kommt bei "On error" leider kein Eintrag...
Besten Dank für eure Hilfe und viele Grüße
haze

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

Betreff
Datum
Anwender
Anzeige
AW: On Error Behandlung schlägt fehl
05.02.2020 19:02:00
ChrisL
Hi
Vielleicht kannst du das Feld mit dem entsprechenden Index ansprechen, dann brauchst du On Error generell nicht.
PivotFields(1)
Falls der Index dynamisch ist, könnte man es so lösen:
With Worksheets("sheet3").PivotTables(1)
For i = 1 To .PivotFields.Count
If .PivotFields(i).Name = "FC" Then
.PivotFields(i).Name = "Trend"
Exit For
End If
Next
End With

https://docs.microsoft.com/en-us/office/vba/api/excel.pivotfields
Falls du weiter optimieren möchtest, hier zwei kürzlich erstellte Beiträge. Etwas andere Ausgangslage, aber das Grundproblem bleibt.
Einerseits "Referenzierung" (With-Rahmen setzen und Select/ActiveSheet ersetzen)
https://www.herber.de/forum/messages/1738468.html
Andererseits "Select-Case" als Alternative zur If-Then Verschachtelung (macht es deutlich übersichtlicher)
https://www.herber.de/forum/messages/1738422.html
cu
Chris
Anzeige
AW: On Error Behandlung schlägt fehl
06.02.2020 08:23:12
haze
Hi Chris,
vielen lieben Dank für die Antwort.
Tatsächlich wird sich an der Struktur der Pivot nichts ändern (gerade deshalb ja der Wechsel der Überschriften per VBA). Insofern ist dein Vorschlag der sinnvollste Lösungsansatz - tausend Dank!
Ich probiere es gleich mal aus, zur Not melde ich mich wieder.
Beste Grüße
haze

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige