Office: (Office 365) VBA bestimmte Tabellenblätter separat speichern

Helfe beim Thema VBA bestimmte Tabellenblätter separat speichern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe ein Dashboard erstellt, das per Datenschnitt erlaubt verschiedene Merkmale zu Filtern. Bspw. bestimmte Produkte, Varianten... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von rsgg, 29. November 2022.

  1. rsgg Neuer User

    VBA bestimmte Tabellenblätter separat speichern


    Hallo zusammen,

    ich habe ein Dashboard erstellt, das per Datenschnitt erlaubt verschiedene Merkmale zu Filtern. Bspw. bestimmte Produkte, Varianten sowie Vertriebsmitarbeiter.
    Im Hintergrund beziehen sich die Filter und Kennzahlen auf ein Blatt mit mehreren Pivot-Tabellen, das geschützt und ausgeblendet ist.
    Das Dasboard selbst ist auch geschützt, um zu verhindern, dass bestimmte Datenschnitte oder Grafiken verändert werden - einzelne Datenschnitte sind jedoch vom Schutz aufgehoben.
    Es hat sich auf der Wegstrecke herausgestellt, dass die Vertriebsmitarbeiter die KPIs der anderen Kollegen nicht sehen dürfen und nun jeder ein eigenes Dashboard erhalten soll.
    Da es sich um rund 100 Personen handelt, benötige ein Makro, das für jeden Mitarbeiter ein eigenes Dashboard ausleitet. Ist es möglich dies über den Datenschnitt zu steuern und zusätzlich das im Hintergrund befindliche Blatt mit den Pivots jedem Extrakt zuzufügen?
    Oder sollte die Dashboard-Ansicht für jede Person kopiert und vorgefiltert werden, um sie gemeinsam mit dem Pivot-Blatt ausleiten zu können?

    Vielen Dank vorab für die Hilfe!
     
  2. Chaoswolf
    Chaoswolf User
    Ich hatte vor kurzem einen ähnlichen Fall, beidem mir Beverly geholfen hat.

    Workbook über variablen Pfad öffnen (office-hilfe.com)

    Der folgende Code könnte über einen Button angesprochen werden und exportiert das aktuelle Sheet und blendet den Button aus, der den Export angestoßen hat und fügt gleichzeitig noch eine Bemerkung ein.

    Wenn du mehrere Blätter exportieren möchtest kannst du den Code entsprechend erweitern.

    Code:
    Private Sub cmdSpeichern_Click()
    
        'Pfad setzen
        Dim strFilename     As String
        
        'Pfad festlegen
        strFilename = "{PFAD}" & "{DATEINAME} " & Range("C2").Value & ".xls"
        
        'Blatt kopieren
        ActiveSheet.Copy
        
        'Blattschutz aufheben
        ActiveSheet.Unprotect "{PASSWORT}"
        
        'CommandButtons in neuer Mappe ausblenden
        ActiveSheet.OLEObjects("{BUTTONNAME}").Visible = False
        
        'Markierung hinzufügen
        ActiveSheet.Range("F2").Value = "Achtung diese Kopie dient nur zur Information"
        ActiveSheet.Range("F2").Font.Color = RGB(255, 0, 0)
        ActiveSheet.Range("F2").Font.Size = 16
        
        'Blattschutz wieder aktivieren
        Tabelle5.Protect "QB"
        
        'Neue Mappe speichern
        ActiveSheet.SaveAs Filename:=strFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
          
    End Sub
     
    Chaoswolf, 29. November 2022
    #2
  3. rsgg Neuer User
    Danke für die blitzschnelle Antwort!!! Ich habe mit VBA ehrlicherweise keine Erfahrung.. VBA bestimmte Tabellenblätter separat speichern *:D*
    Ich kann mit dem Code jedes bereits vorhandene Tabellenblatt einzeln ansteuern. Was mir fehlt ist eine Möglichkeit alle Auswahloptionen des Datenschnitts als eigene Tabellenblätter PLUS dem geschützten (am liebsten sogar versteckten) Pivot-Tabellenblatt in eigene Dateien abzuspeichern. Ist das möglich?
     
  4. Chaoswolf
    Chaoswolf User

    VBA bestimmte Tabellenblätter separat speichern

    Kannst du bitte eine anonymisierte Beispieldatei hochladen? Ich glaube es wird sonst schwierig zu einem Ergebnis zu kommen.
     
    Chaoswolf, 29. November 2022
    #4
  5. rsgg Neuer User
    Anbei eine Muster-Datei.
    Normalerweise sind alle Blätter geschützt und ggfs. einzelne Elemente darin entsperrt.
    In dem Tabellenblatt "Dashboard" befinden sich drei Datenschnitte auf der linken Seite - Gerne würde ich pro Datenschnitt-Feld ein Extrakt erstellen, sodass ich die Filter nicht manuell setzen, sperren und ausleiten muss. (In Realität sind es etwa 100)
    Die übrigen Tabellenblätter sind erforderlich um genau diese (und zusätzliche) Datenschnitte anzusteuern und müssen immer mit extrahiert werden. Idealerweise geschützt und ausgeblendet.
    Vielen Dank!
     
  6. Chaoswolf
    Chaoswolf User
    Erst einmal Respekt. Das ist ein schönes Dashboard. Jetzt wo ich die Tabellen sehe, kann ich mir auch vorstellen was du meinst.

    Ich fürchte, da werde ich auch nicht unbedingt helfen können. Wenn es nur drei Datenschnitte oder 10 oder so wären könnte man es ja noch mit dem Makrorekorder aufnehmen, den Code schöner machen und gut, aber so benötigt es ja schon eine gewisse Logik. Ich fürchte das ist auch für mich eine Nummer zu groß, tut mir leid.
     
    Chaoswolf, 29. November 2022
    #6
  7. rsgg Neuer User
    Wie wäre es denn, wenn es nur um einen Datenschnitt ginge oder ist auch hier die Anzahl der darin enthaltenen Elemente relevant?

    Trotzdem vielen Dank dir für die schnelle Hilfe und Einschätzung!! :-)
     
  8. Pan
    Pan Erfahrener User

    VBA bestimmte Tabellenblätter separat speichern

    Ich würde das komplett umgedreht denken. Nicht die einen kopieren, sondern die anderen rauslöschen, denn mit dem kopieren behältst du die Referenzen zur Ursprungsdatei in der Zieldatei. Wenn du stattdessen die anderen Worksheets löschst, gibt es keine externen Dateiverweise bei Worksheet übergreifenden Formeln und das Makro muss nur die Datei selbst unter anderen Namen als XLSX speichern.

    Ist auch deutlich weniger Code :-)
    Pan
     
  9. rsgg Neuer User
    Hi Pan,
    danke für die Antwort!
    Darüber habe ich auch nachgedacht, also das Blatt "Dashboard" in der Anzahl der Personen in derselben Datei kopieren, entsprechend vorzufiltern und entweder auszuleiten oder die überflüssigen zu entfernen. Allerdings besteht die Verbindung der Datenschnitte zu einem Blatt mit Pivot-Tabellen. In unterschiedlichen Blättern unterschiedliche Filter zu setzen, die sich auf denselben Bereich beziehen, führt dazu, dass die Pivot-Filter bei jedem neu gefilterten Blatt wieder umsetellen und somit auch alle Zahlen und Bezüge. Oder meinst du das korrigiert sich, sobald die anderen Blätter entfernt sind?
     
  10. rsgg Neuer User
    Hallo Pan,
    vielleicht habe ich deine Antwort falsch verstanden oder sie hat mich auf eine andere Überlegung gebracht.
    Möglicherweise macht es am meisten Sinn im Blatt "Data" in entsprechenden Iterationen Mitarbeiter zu entfernen und als neue Datei zu speichern.

    Ich habe an anderer Stelle einen Code gefunden, der Inhalte durchsucht und Zeilen entsprechend löscht.

    Sub nameloeschen()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(i, 7) = "Max Mustermann" Then Rows(i).Delete
    If Cells(i, 7) = "Michael Mustermann" Then Rows(i).Delete
    Next i
    Application.ScreenUpdating = True
    End Sub

    Hättest du eine Idee, wie ich per Code zum einen das Ergebnis aus den entfernten Zeilen in eine separate Datei speichern kann, die nach dem übrig gebliebenen Namen benannt ist und anschließend das Löschen rückgängig macht, um den selben Vorgang für die übrigen Namen durchzuführen?
    Danke!!
     
  11. Pan
    Pan Erfahrener User
    Hi rssg

    Du kannst die Pivot-Filter auch mit VBA manipulieren und aktualisieren. Der Vorteil von Pivots gegenüber Formeln kommt hier gut zum tragen, da sie auch ohne die Datenquelle inhaltlich stabil bleiben. Alternativ würde das auch mit PowerQuery gehen, aber auch die müsstest du aktualisieren.

    Ich würde ein Script schreiben das
    • Filter modifiziert (gemäß einer Liste in der Steuerungsdatei)
    • Pivot aktualisiert
    • Unnötigen Worksheets löscht
    • Unter neuem Namen speichert (gemäß einer Liste in der Steuerungsdatei)
    • Die Datei schließt
    • Die Originaldatei wieder öffnet.
    • Das Script für den nächsten Anwender startet. (gemäß einer Liste in der Steuerungsdatei)

    Dieses Script wäre bei mir in einer zweiten Excel-Steuerungsdatei, in der ich schnell Quell und Zielpfade modifizieren könnte und in der ich für jede Datei in einer Tabelle die Filter und Zieldateipfade hinterlegt hätte.

    Das würde ich machen um das Designprinzip der Trennung von Inhalt, Parameter und Funktion zu nutzen.
    Pan
     
  12. rsgg Neuer User
    Hi Pan,
    das klingt schlüssig, allerdings habe ich null Erfahrung mit VBA - könntest du möglicherweise mit einem entsprechendem Code weiterhelfen..?
     
  13. Pan
    Pan Erfahrener User

    VBA bestimmte Tabellenblätter separat speichern

    Das Problem besteht eher darin das du dann die kompletten Daten, samt filterlogik an mich schicken müsstest und die dann auf meinem beruflichen Rechner landen, was sie nicht dürfen .. und du magst das jetzt für einen Scherz halten, aber ich habe keinen privaten Rechner.

    Sorry
    Pan
     
  14. steve1da Office Guru
  15. rsgg Neuer User
    Trotzdem Danke!
     
Thema:

VBA bestimmte Tabellenblätter separat speichern

Die Seite wird geladen...
  1. VBA bestimmte Tabellenblätter separat speichern - Similar Threads - VBA bestimmte Tabellenblätter

  2. Über Eingabefelder bestimmte Zellen füllen, wohl VBA

    in Microsoft Excel Hilfe
    Über Eingabefelder bestimmte Zellen füllen, wohl VBA: Hallo, suche eine Möglichkeit wenn ich am Monatsende den Stromzählerstand ablese und Datum in C1 und Zählerstand in C2 eintrage, das dann C1 (Datum) in B27 übertragen wird. Außerdem Wert in C2...
  3. Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren: Hallo zusammen, ich bin erst vor ein paar Tagen auf die Excel VBA gestoßen und kenne mich deswegen leider so gut wie gar nicht aus. Ich würde gerne aus den Tabellen 3 - 11, bestimmte Zeilen in die...
  4. Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro)

    in Microsoft Excel Hilfe
    Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro): Hallöchen, ich stehe aktuell vor folgendem Problem: Wir haben ein Excel Makro, das über die Zeiterfassung alle Mitarbeiter und ihre Stunden in verschiedenen Positionen auflistet. Eine abgespeckte...
  5. Per Makro bestimmten Bereich per PDF unter bestimmten Pfad speichern.

    in Microsoft Excel Hilfe
    Per Makro bestimmten Bereich per PDF unter bestimmten Pfad speichern.: Moin Zusammen, ich hoffe Ihr könnt mir helfen, denn ich verzweifle so langsam :( Ich habe bereits hier und im Internet gefühlt vieles durchgelesen, komme aber leider nicht weiter. Ich möchte...
  6. [EILT] Bestimmte Inhalte einer Zelle in eine andere Zelle kopieren und die Anzahl ausrechnen

    in Microsoft Excel Hilfe
    [EILT] Bestimmte Inhalte einer Zelle in eine andere Zelle kopieren und die Anzahl ausrechnen: Hallo zusammen, ich muss dringend bis Montag eine Liste fertigstellen, dass folgendes beinhaltet: Alle Mailadressen, die in der Zeile A2 sind, müssen untersucht werden und die Mailadressen mit...
  7. Bestimmte Zeilen Ausschneiden und in anderes Tabellenblatt einfügen

    in Microsoft Excel Hilfe
    Bestimmte Zeilen Ausschneiden und in anderes Tabellenblatt einfügen: Hallo, ich habe folgendes Problem: Mein Makro soll alle (kompletten) Zeilen von Tabelle 1 in Tabelle 2 verschieben, bei denen in der Spalte 1 der Wert größer als 4999 ist. Habe mir ein Makro...
  8. Excel bestimmte Tabellenblätter mittels Schaltfläche (VBA) drucken/ pdf drucken

    in Microsoft Excel Hilfe
    Excel bestimmte Tabellenblätter mittels Schaltfläche (VBA) drucken/ pdf drucken: Hallo zusammen, ich habe folgendes Problem und hoffe ihr könnt mir hierbei helfen. Ich möchte folgende Schaltflächen evtl. mit Steuerelement Toolbox und VBA generieren: 1. Tabellenblatt...

Users found this page by searching for:

  1. vba speichern in verschiedenen tabellenblättern

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden