Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1644to1648
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

Change Ereignis bei Verschiebung von Tabellen

Change Ereignis bei Verschiebung von Tabellen
11.09.2018 13:22:56
Tabellen
Hallo liebe Mitglieder,
bis dato habe ich leider keine passende Antwort auf mein Problem gefunden.
Ich habe ein Tabellenblatt, auf dem eine Auswertung aller folgender Tabellenblätter durchgeführt wird. Dabei wird von jedem "Unterblatt" die dort ermittelte Summe aufaddiert, sodass man am Ende eine Gesamtsumme auf dem ersten Tabellenblatt erhält.
Dazu lasse ich ein Makro durchlaufen, welches Die Formel =SUMME(Tabelle2:TabelleXY!L50) einfügt. TabelleXY bestimme ich immer aktuell, wenn ein neues Tabellenblatt hinzugefügt wird.
Nun kann es jedoch passieren, dass jemand manuell ein existierendes Tabellenblatt hinter das neu hinzugefügte schiebt und es damit nicht mehr in der Summenformel berücksichtig wird.
Ich würde dieses Problem gerne umgehen, indem mir eine Funktion signalisiert, dass die Tabellenblätter verschoben wurden. Also ein Äquivalent zum Workbook.SheetChange Event bloß über alle Tabellen.
Über Hilfe bin ich sehr dankbar.
Mit freundlichen Grüßen
scipiol

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

Betreff
Datum
Anwender
Anzeige
workarround
11.09.2018 13:35:50
UweD
Hallo
muss in DieseArbeitsmappe
Schiebt bei jeder Änderung das XY immer nach hinten.
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
        Sheets("TabelleXY").Move After:=Sheets(Sheets.Count) 
        Sh.Activate ' kehrt zum Eingabeblatt zurück 
End Sub 

LG UweD
Anzeige
AW: workarround
11.09.2018 14:03:01
scipiol
Hallo Uwe,
danke für die Idee, so werde ich es jetzt auch machen.
Nur für mich zum Verständnis...die Funktion wird ja aufgerufen, sobald sich etwas WS ändert, d.h. ja aber auch, dass er bei jeder marginalen Eingabe in diese Funktion rennt und eigentlich (auch wenn man das als Anwender nicht merkt) Rechenkapazität belegt?
MFG
scipiol
ja.
11.09.2018 14:08:51
UweD
AW: danke
11.09.2018 14:10:56
scipiol
workaround 2 - UDF
11.09.2018 13:41:29
ChrisL
Hi
Ich würde hier eine benutzerdefinierte Funktion (UDF) verwenden.
=SummeSpezial("L50")
Function SummeSpezial(strAdresse As String) As Currency
Dim WS As Worksheet
Application.Volatile
For Each WS In ThisWorkbook.Worksheets
Select Case WS.Name
Case "Tabelle1", "Tabelle2" 'hier Ausschlüsse definieren
Case Else
If IsNumeric(WS.Range(strAdresse)) Then _
SummeSpezial = SummeSpezial + WS.Range(strAdresse)
End Select
Next WS
End Function

Anzeige
AW: workaround 2 - UDF
11.09.2018 14:08:20
scipiol
Hi Chris,
danke für die Mühe! Falls es mit der einfachen Lösung von Uwe nicht klappt, werde ich das mal probieren.
Allerdings sind es halt ein paar mehr "Gesamt-Ergebnisse", sodass es dann mit ein paar Schleifen komplizierter wird...
MFG
scipiol

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige