Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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 Tabellenblätter separat speichern

VBA Tabellenblätter separat speichern
30.11.2022 09:03:56
RGGS
Hallo zusammen,
ich habe ein Dashboard erstellt, das per Datenschnitt erlaubt verschiedene Merkmale zu Filtern. Bspw. bestimmte Produkte, Varianten sowie Mitarbeiter.
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 Mitarbeiter 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 versteckt und geschützt 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?
Anbei eine Beispiel-Datei. (Datenschnitte unter "Dashboard" auf der linken Seite)
https://www.herber.de/bbs/user/156466.xlsx
Vielen Dank vorab für die Hilfe!

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

Betreff
Datum
Anwender
Anzeige
personalierte Kopie des WB ablegen
30.11.2022 14:17:21
Yal
Moin RGGS,
"protection by obfuscation", also Schutzen durchs Verstecken, ist selten eine gute Idee. Es wird sehr schnell jemand geben, der den Schutz umgehen kann oder noch schlimmer, die Daten weiterleiten in der Überzeugung, dass keine schützenwerte Daten -ausser seine eigene- vorliegen. Dann hast Du erst recht den Salat.
Du musst jeweils eine Kopie erzeugen, in dem nur die Daten der betroffene User (Name1, oder?) vorliegen. Spricht die anderen löschen.
Heute leider erst am abend Zeit (vielleicht). Ich lasse die Frage mit einem anderen Titel offen. Vielleicht kommt jemanden Dir zur Hilfe.
VG
Yal
Anzeige
AW: personalierte Kopie des WB ablegen
30.11.2022 20:32:57
Yal
Hallo RGGS,
ungetestet. Verwendung auf eigene Gefahr.

Sub Kopie_pro_MA_speichern()
Dim MA_Liste As Object
Dim LO As ListObject
Dim R, Rc
Dim Dateiname As String
Dim Wb As Workbook
Set MA_Liste = CreateObject("Scripting.Dictionary")
Set LO = Worksheets("Data(versteckt+geschützt)").ListObjects(1)
For Each R In LO.DataBodyRange.ListRows
MA_Liste(R.Cells(LO.ListColumns("Name 1").Index).Value) = 1
Next
For Each R In MA_Liste.Keys
Dateiname = Replace(ThisWorkbook.FullName, ".xlsx", R & ".xlsx")
ThisWorkbook.SaveCopyAs Dateiname
Set Wb = Workbooks.Open(Dateiname)
Set LO = Wb.Worksheets("Data(versteckt+geschützt)").ListObjects(1)
For Rc = LO.ListRows.Count To 1 Step -1
If LO.ListRows(Rc).Range.Cells(LO.ListColumns("Name 1").Index).Value  R Then LO.ListRows(Rc).Delete
Next
Wb.Save
Wb.Close
Next
Set MA_Liste = Nothing
End Sub
VG
Yal
Anzeige
AW: personalierte Kopie des WB ablegen
01.12.2022 10:00:20
RGGS
Hallo Yal,
vielen Dank für deine Zeit und Antwort!
Da hast du recht, gefiltert ist nicht gelöscht. Auch wenn ich die Wahrscheinlichkeit für gering halte, dass jemand die Datei auf versteckte Elemente untersucht oder versucht den Schutz aufzuheben, könnte ein kleiner Fehler ungewollte Auswirkungen haben..
Zu deinem Code: Ich erhalte die Meldung "Laufzeitfehler 438". Leider sind meine VBA Kentnisse = 0, daher kann ich nicht einschätzen, was die Ursache sein könnte..
AW: personalierte Kopie des WB ablegen
01.12.2022 10:50:46
RGGS
Hallo Yal,
Ich habe an anderer Stelle einen Code gefunden, der Inhalte durchsucht und Zeilen entsprechend löscht, um direkt im Blatt "Data" Werte zu löschen, die durch bestimmte Zielgruppen nicht gesehen werden dürfen. Dies müsste in mehreren Iterationen durchgeführt werden, um alle Kombinationen an zu entfernenden Inhalten durchzuspielen.

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!!
Anzeige
AW: personalierte Kopie des WB ablegen
02.12.2022 09:51:58
Yal
Anstatt die Gleichheit zu Unerwünschten(das sind mehrere), solltest Du die Ungleichheit zu Erwünschten (davon gibt es nur einen) prüfen.
VG
Yal

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige