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

VBA Pivot in neue Mappe Bezug löschen

VBA Pivot in neue Mappe Bezug löschen
14.03.2022 08:45:22
Sven
(@ admin: Eventuell Doppelter Eintrag, Falls Ja, bitte ein Mal Löschen. Beim Abschicken kam ein "leeres Fenster" und im Forum wurde der Beitrag nicht angezeigt)
Guten Morgen,
immer wenn ich in Excel nicht weiter weiß, suche ich über Google nach Hilfestellungen. Häufig kann ich auf Lösungen aus diesem Forum zurückgreifen, die ich anpassen kann bzw. die mir einenen Hinweis in die richtige Richtung geben. Daher schon mal Danke an die ganzen Hilfen, die ich aus Euren Beiträgen "räubern" konnte.
Aktuell habe ich jedoch ein Problem, für das ich in Eurem Forum und auch den englisch sprachigen Foren keine Lösung finden konnte. Ich vermute, dass hier ein Grundverständins von VBA notwendig ist, das man einfach haben muss. Und das über ein einfaches zusammennageln von Befehlszeilen hinausgeht.
Unter
https://www.herber.de/bbs/user/151751.xlsm
habe ich meine Beispieldatei hochgeladen. Über die sehr anfängerhaft angelegten Buttons im Tabellenblatt "Steuerungselemente" beabsichtige ich zum einen unsere Haushaltsdaten einigermaßen komfortabel aufzubereiten. Da es über 10.000 Zeilen sind, musste ich die Daten unter "Planansätze" ordentlich zusammenstauchen. Ich Hoffe jedoch, dass die Grundfunktionen nachvollziehbar bleiben.
Die ersten Buttons laufen fehlerfrei durch, bei den Buttons zur Erstellung der neuen Mappen habe ich jedoch teilweise Probleme. Über diese Buttons sollen die Pivot Diagramme und Pivot Tabellen eine neue Exceldatei kopiert werden. Der Dateiname und Speicherort ist per VBA festgelegt. So weit hat alles funktioniert. Beim Öffnen der neu erstellten Datei habe ich jedoch festgestellt, dass die Pivot Tabellen und Diagramme weiterhin auf die ürsprüngliche Datei verweisen, anstelle auf die mit übertragene Datenquelle. Da die Diagramme auf unsere Homepage sollen, sind Dateiverknüpfungen natürlich suboptimal.
Für die Entferung der Verknüpfung habe ich im Internet auch eine Lösung gefunden und diese unter Private Sub AnpassungDatenquelle() eingefügt. Wenn ich diese Zeilen direkt in den neuen Excel Mappen ausführe, werden die Verknüpfungen zur Ursprungsdatei gekappt und die Datenquellen der Pivots sauber angepasst. Im nächsten Schritt habe ich versucht die Anpassung der Datenquelle direkt in die Befehlszeilen des Kopiervorgangs einzufügen. Theoretisch sollte das ja kein Problem sein, da ich ja bereits eine Schleife zur Anpassung der Formatierung ausführe. Den zusammengefassten Code habe ich mit dem Button "Test Funktionen" verknüpft. Beim Ausführen kommt jedoch jedes Mal der Laufzeitfehler 5 Ungültiger Prozeduraufruf oder ungültiges Argument.
Ich vermute mal, das hat jetzt nicht unbedingt etwas mit dem Code an sich zu tun, sondern damit, dass ich die von mir gewünschte Aktualisierung der Datentabelle nicht so oder an dieser Stelle erreichen kann. Fehlender Dateipfad? Problem mit ActiveWorkbook an dieser Position? Als absoluter VBA Anfänger steh ich hier auf dem Schlauch. Wahrscheinlich ist es nur eine Kleinigkeit, die man jedoch über VBA wissen muss.
Ich hoffe Ihr könnt anhand meiner Beschreibung und dem Code einigermaßen nachvollziehen wo ich nicht weiter komme. Schon mal vorab vielen Dank für Eure Zeit und Bemühungen einem VBA Anfänger weiter zu helfen.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Pivot in neue Mappe Bezug löschen
14.03.2022 10:21:25
ChrisL
Hi Sven
Nur mal ein kleiner Tipp. Bei Bedarf bitte die Frage wieder als offen markieren.
Ich denke es wäre deutlich einfacher, die Datei als Kopie zu speichern und dann überflüssige Blätter zu entfernen.
cu
Chris
AW: VBA Pivot in neue Mappe Bezug löschen
14.03.2022 10:31:51
Sven
Hallo Chris,
danke für den Hinweis. So lange nur ich das mache, dürfte das kein Problem sein. Schließlich weiß ich, welche Tabellen benötigt werden, und welche nicht.
Die VBA Lösung war jedoch als Vereinfachung gedacht, so dass ich gleiche Schritte nicht mehrfach machen muss. Zudem habe ich dann auch das mit dem Blattschutz, dem Ausblenden von Pivot Feldlisten, die nachträglich Formatierung der Werte, das Löschen der Makros, etc. auf einen Schlag von der Backe. Schließlich sollen die Tabellen Makrofrei veröffentlich werden. Somit könnte das Geschäft auch jemand machen, der nicht weiß wo was zu speichern, auszublenden und zu löschen ist.
Falls also jemand einen Hinweis hat, warum der VBA Code an der Stelle nicht funktioniert, an der ich ihn eingefügt hab, wäre das schon eine Erleichterung zur Erledigung von lästigen Aufgaben, bei denen sich immer wieder Leichtsinnsfehler einschleichen können.
Anzeige
AW: VBA Pivot in neue Mappe Bezug löschen
14.03.2022 11:38:29
ChrisL
Hi Sven
Man kann Leute nicht zum Glück zwingen, aber ich versuche es trotzdem. :)
Auch den umgekehrten Weg (löschen statt neu erstellen) kann man automatisieren.

Sub t()
Dim arDateien As Variant, i As Integer, wks As Worksheet, b As Boolean
' zuerst die Originaldatei speichern, damit es mit der Kopie übereinstimmt
ThisWorkbook.Save
' hier ein paar Formatierungen erledigen, wenn benötigt
Tabelle1.Range("A1").Interior.Color = vbRed ' Dummy
' Warnmeldungen ausschalten
Application.DisplayAlerts = False
' Überflüssige Tabellen löschen
arDateien = Array("Tabelle1", "Tabelle3") 'diese beiden Tabellen bleiben erhalten
For Each wks In ThisWorkbook.Worksheets
b = False
For i = LBound(arDateien) To UBound(arDateien)
If arDateien(i) = wks.Name Then
b = True
Exit For
End If
Next i
If Not b Then wks.Delete
Next wks
' Datei als xlsx speichern
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\test.xlsx", FileFormat:=xlOpenXMLWorkbook
' Warnmeldungen wieder einschalten
Application.DisplayAlerts = True
End Sub
cu
Chris
Anzeige
AW: VBA Pivot in neue Mappe Bezug löschen
16.03.2022 08:50:10
Sven
Hallo ChrisL,
erst Mal vielen Dank für den Hinweis. Leider war bei uns im Geschäft der Internetzugang gestört, daher komme ich erst heute dazu das ganze zu testen.
Den Lösungsweg erst löschen, dann unter anderem Namen Speichern hatte ich auch schon erwogen. Aber manchmal steht man vor einem Problem und und sagt sich "Das muss doch auch so gehen" :-)
Der Code zum Löschen funktioniert soweit. Der erste Anfängerfehler war, dass ich den Code in ein Blatt kopiert habe, das gelöscht wird. Aber ich bin noch in einem lernfähigen Alter. Ich muss Deinen Code nur um die Belegung von Pfad und Dateinamen erweitern, aber dann dürfte das auch klappen.
Kannst Du mir noch einen Hinweis geben, wie ich beim Schließen der Datei die Frage die "Mappe ohne Makro speichern?" ebenfalls automatisch bestätigen kann? Ich wähle da wahrscheinlich immer die richtige Antwort. Aber wenn ich die Tabelle mal rausgeben sollte, könnte auch das Makro mitgespeichert werden. Was eigentlich nicht beabsichtig ist.
Anzeige
AW: VBA Pivot in neue Mappe Bezug löschen
16.03.2022 08:58:22
ChrisL
Hi Steven
Danke für die Rückmeldung.
Das Speichern als xlsx (somit ohne Makros) ist im Beispiel bereits aufgezeigt. DisplayAlerts = False sollte die Meldung abschalten.
cu
Chris
AW: VBA Pivot in neue Mappe Bezug löschen
16.03.2022 09:29:37
Sven
Hallo ChrisL,
hab's gerade gemerkt. Ich war nur etwas irritiert, dass der VBA Code noch auf dem Bildschirm angezeigt wurde. Nach dem Öffnen der Datei war er dann natürlich weg. Ich habe jetzt auch alle anderen (Teil-)Funktionen eingebaut und nach ein paar Fehlermeldungen (Doof wenn man eine Tabelle aktivieren will, die bereits gelöscht ist. Man sollte schauen welche Codezeile man kopiert) hat alles wunderbar geklappt. Jetzt muss ich das ganze noch an die zweite Blattauswahl anpassen und dann hab ich die Lösung die ich brauche.
Danke nochmals für die schnelle Hilfe.
Gruß
Sven
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige