Hi Ralf,
(18.12.2015, 13:51)RPP63 schrieb: Ich bin gerade dabei, ein Add-In zu erstellen, welches die Bedienung von Excel erleichtern soll.
Mir geht es darum, häufig benötigte Abläufe zu integrieren, die mit "Bordmitteln" nur umständlich zu realisieren sind.
("sprechende" Shortcuts inclusive)
[...]
Vorschläge sind willkommen!
Aus dem
Herber-Forum von MikeS:
Ein und Ausblenden von Arbeitsblättern
Sub EinblendenVersteckteBlätter()
Dim Blatt As Worksheet
For Each Blatt In Sheets
Blatt.Visible = True
Next Blatt
End Sub
Sub AusblendenAußerAktivesBlatt()
Dim Blatt As Object
For Each Blatt In Sheets
If Blatt.Name <> ActiveSheet.Name Then
Blatt.Visible = False
End If
Next Blatt
End Sub
Aktualisieren von Pivots
Wenn die PT in einem separaten Tabellenblatt erstellt wurde, kann man hinter das Modul des Tabellenblattes auch ein Worksheet_Activate-Makro hinterlegen:
Code:
Private Sub Worksheet_Activate()
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End Sub
Wenn die PT im gleichen Arbeitsblatt liegt, dann könnte man einfach einen CommandButton aus den ActiveX-Steuerelementen im Menü Entwicklertools aufziehen und den folgenden Code hinterlegen:
Code:
Private Sub CommandButton1_Click()
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End Sub
Wenn mehrere PTs in einer Mappe liegen und auf einen Schlag alle PTs aktualisiert werden sollen, dann könnte man folgende Prozedur nutzen:
Für einen Durchlauf durch alle PTs einer Mappe :
Code:
Sub RefreshPT()
Dim wS As Worksheet
Dim pt As PivotTable
For Each wS In ActiveWorkbook.Worksheets
For Each pt In wS.PivotTables
pt.RefreshTable
Next pt
Next wS
End Sub
Aktualisierung aller PTs des Tabellenblattes bei Änderungen im Bereich A2 bis K12:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich1 As Range
Dim pt As PivotTable
Set Bereich1 = Range("A2:K12")
If Not Intersect(Target, Bereich1) Is Nothing Then
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End If
End Sub