Clever-Excel-Forum

Normale Version: Arbeitsmappe refreshAll
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe mir für meine Tabelle ein RefreshAll gemacht, damit es mir meine Pivot aktualisiert wenn ich Daten ändere.

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ThisWorkbook.RefreshAll

End Sub

Der funktioniert einwandfrei.

ABER:

Wenn ich das Tabellenblatt kopiere, dann ist der VB-Code im nächsten Tabellenblatt nicht mehr funktionsfähig.

Wie und wo kann ich das in VB nun machen, dass Excel automatisch für alle Tabellenblätter diesen Code verwendet?
Ich habe es schon mittels Modul versucht, auch ein VB in "DieseArbeitmappe" habe ich kopiert.
Leider funktioniert das alles nicht.

Also wie und wo muss ich das nun einfügen, damit es für all meine bestehenden und neuen sowie kopierten Tabellenblätter gilt? Ich verzweifle gerade.

Vielen Dank

Oh mein gott.

Manchmal muss man stunden tüfteln um festzustellen, dass der Fehler vor dem PC sitzt.

Es lag am Kopieren des Tabellenblattes, aber das Pivot bezieht sich immer noch auf das andere Tabellenblatt....

Problem gelöst, einfach den Verweis auf Tabelle 2 entfernt und nur noch Zeile und Spalte bei Pivot und alles ist gut.
Hallöchen,

einige Ereignisse der Blätter gibt es auch unter DieseArbeitsmappe, z.B. auch

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Du könntest auch überlegen, ob das Refresh bei jedem SelectionChange erforderlich ist oder auch andere Ereignisse passen. Manchmal reicht ein Refresh z.B. beim Blattwechsel ...

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

oder nur wenn sich was ändert

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)