Hallo zusammen,
ich bin Neu hier und auch VBA Neuling. :-)
Ich bin dabei ein Bestelltool für die Arbeit zu erstellen, welches wie folgt funktioniert.
Es gibt einen Reiter "Übersicht" auf dem die Auswahl in einer Pivot Tabelle abgebildet wird. Dann gibt es noch mehrere Produktreiter, in denen der Kunde die Menge der gewünschten Artikel auswählen kann. Das funktioniert alles wunderbar.
Damit der Kunde nichts ausversehen ändern kann, möchte ich einen Blattschutz drauf legen, aber die PivotTabelle in dem Reiter "Übersicht" soll sich beim anklicken / aktivieren des Reiter automatisch aktualisieren.
Ich hatte es mit dem Code mal versucht. Das Problem ist, dass auch automatisch ein Blattschutz generiert wird, auch wenn vorher keiner aktiviert war.
Das ist sehr umständlich.
Code:
|
Private Sub Workbook_Open()
PT_aktualisieren
End Sub
|
Das in ein StandardModul (z.B. Modul1)
Code:
|
Sub PT_aktualisieren()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
If ws.PivotTables.Count Then
ws.Unprotect "pw" 'Passwort anpassen
For Each pt In ws.PivotTables
pt.RefreshTable
Next
ws.Protect "pw" 'Passwort anpassen
End If
Next
End Sub
|
Daher habe ich versucht diesen umzuschreiben und hinundher probiert, aber esfunktioniert nicht.
Code:
|
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim ws As Worksheet
Dim pT As PivotTable
For Each ws In ThisWorkbook.Worksheets
If ws.ProtectContents = True Then
ws.Unprotect "pw"
For Each pT In ws.PivotTables
pT.RefreshTable
Next
ws.Protect "pw"
Else
pT.RefreshTable
End If
Next ws
End Sub
|
Könntet Ihr mir eventuell hierbei weiterhelfen?
Vielen Dank im Voraus!
VG
|