Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Worksheet_Change-Ereignis

Forumthread: Worksheet_Change-Ereignis

Worksheet_Change-Ereignis
03.12.2024 20:09:47
Klaus Reich
Good evening in's Forum, kann ich in zwei Tabellenblättern für das gleiche Change zwei versch.Wege vorgeben ? Will sagen, in Tab1 soll Change etwas anderes bzw. mit anderen Parametern tun, als in Tab2, oder muß ich in beiden Changes wenn "ActiveWorkbook.ActiveSheet.Name = "Tabelle1" then ... Else (nun also "Tabelle2"), dann mach's so ... einfügen ? Oder anders : ist ein Ereignis immer (!) nur auf's jeweilige Tabellenblatt bezogen ? THX Klaus Reich
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change-Ereignis
03.12.2024 20:21:21
RPP63
Moin!
Ein Worksheet_Change ist immer an das Parent, folglich das Tabellenobjekt, in dem der Code steht, gebunden.
Dieses Parent wird (hier) auch als Me bezeichnet.
«ist ein Ereignis immer (!) nur auf's jeweilige Tabellenblatt bezogen»
Nö!
Ereignismakros gibt es in allen möglichen Klassenmodulen:
https://online-excel.de/excel/singsel_vba10f7.html?f=160

Gruß Ralf
Anzeige
AW: Worksheet_Change-Ereignis
03.12.2024 20:28:22
Onur
Jedes Tabellenblatt hat ein EIGENES Change-Ereignis, das du frei programmieren kannst, so wie du willst.
Nur das SheetChange-Ereignis würde die von dir befürchteten Probleme bereiten, da es für ALLE Blätter gilt.
AW: Worksheet_Change-Ereignis
04.12.2024 02:34:02
Klaus Reich
Danke Ralf für Deine klare Ansage Nö ! Leider bringt mich mein Uverständnis, schon Eure Terminologie, um den Verstand : der Begriff "Klassenarbeit" sagt mir etwas; doch Klassenmodul ? Ist das mehr als "Gefreiter" ? Da muß ich googlen ! Spaß beiseite, Gut's nächtle Klaus
Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 07:56:21
MCO
Nur um den Beitrag entgültig zu beantworten und zu schließen:

Das kommt bei Diese Arbeitsmappe rein:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)


MsgBox "tut sich was in sheet " & Sh.Name & " und zwar in " & Target.Address(0, 0)

Select Case Sh.Index 'Sheet.index, kann aber auch Sheet.name sein
Case 1
MsgBox "Du bist im Sheet 1"
Case 2
MsgBox "Jetzt änderst Du bist im Sheet 2"
Case 3
MsgBox "Das ist Sheet " & Sh.Index
End Select
End Sub


Statt if ... then ... else... end if hab ich select Case eingebaut, da es übersichtlicher ist beliebig erweiterbar.

Gruß, MCO
Anzeige
AW: Worksheet_Change-Ereignis
03.12.2024 20:25:44
emkaes
Hallo,

benutze im Klassenmodul DieseArbeitsmappe das

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


End Sub


Ereignis. Hier kannst du dann jeweils für die entsprechende Tabelle (Sh) und die geänderte/n Zelle/n deinen Code mit einer If .. then ...else .. end If

Struktur punktgenau erstellen

VG
Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 01:38:08
Klaus Reich
Danke Leute ! Ich muß mich also etwas ala : wenn "ActiveWorkbook.ActiveSheet.Name = "Tabelle1" oder "Tabelle2" widmen, der Fragestellung "habe ich da was in Tab1 oder 2 geändert ? Heißt : reagiere nur mit Veränderung im verändertem Blatt nur auf nur diesen. Wie geht denn "Kerle, Du hast Blatt 1 oder 2 verändert ! Nun EXCEL führe bitte nun die Diagramme NUR im entsprecchenden aus. Ein anderes Ereignis wählen, was sich speziell nur auf Tab1 oder 2 ereignet hat ? Was mir auch nicht klar geworden ist, ist : ohne mein Zutun schreibt der Gute etwas nach Allgemein UND in das Ereignis, why that ? Ich möchte da keinen Button mehrfach irgendwo 'reinwürgen, sondern nur folg. Verhalten für Tab1 und 2 erreichen. Tab 2 : alle Diagramme mögen nach Auswahl auf das Pulldown in G13 mit allen x- und y-Daten dagestellt werden. Nun Tab1, tricky : nur eine einzige Auswahl "xxx" in G13, nämlich "Wasser anno" des Blattes 1 (!) soll einen Teil der X-Achse von 1 der Grafik (alles zwischen x = 31.12.23 und dem letztem Datum Spalte A von 1; in Tab2 ist's egal : immer von $A$14 bis A, Ende anzeigen.
Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 02:12:22
Klaus Reich
Danke emkaes, gönn' bitte einem Unkundigen noch 'ne Nachfrage : benutze im Klassenmodul heißt in beiden Abschnitten der Tabellenblätter 1 und 2 jeweils, namens Modul, "Allgemein" muß es in beiden Blättern also richtig heißen :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) mit Sh = "Tabelle1"
oder vorab "Dim sh as ..." oder was ?

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) mit Sh = "Tabelle2"
sonst, wie oben

und dann muß nur je ein passendes if then else ... für beide Blätter ? folgen ?

Für Blöde : wie sage ich also VBA in beiden Modulen und beiden Blättern wovon ich rede ?

Gute Nacht Klaus Reich
Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 08:20:28
ralf_b
der vba Bereich in DieseArbeitsmappe ist das Klassenmodul für die ganze Datei (workbook). Hier kann man Eventmakros benutzen (z.b. change), die von den einzelnen Blättern weitergegeben wurden bzw. dort aufgetreten sind und welche die nur für das Workbook als Eigenes Objekt gelten.. Das erkennt man schon am Namen des Makros. Sh ist dann eine Variable als Referenz auf das entsprechende Blatt in welchem das Event aufgetreten ist. Es wird kein eigenes Dim sh im Marko benötigt, weil die Variable sh als Parameter schon fertig übergeben wird.

Die gleichen bzw. ähnlichen Events kann man auch nur in einem bestimmten Blatt nutzen, wenn man direkt im Klassenmodul eines Arbeitsblattes das Makro verwendet. hier fehlt "sh" als Parameter weil man sich ja schon in passenden Blatt befindet.

Du kannst nur die Eventsmakros verwenden, die im rechten Dropdown oberhalb des Editors auswählbar sind. Zuvor wählst du im linken Dropdown oberhalb des Editorfensters nicht (Allgemein) aus, sondern den jeweiligen anderen Wert.
Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 14:19:38
emkaes
Hallo,

https://www.herber.de/bbs/user/173994.xlsm

1 Musterdatei sagt mehr als 1000 Worte

du findest in DieseArbeitsmappe das Makro Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Es reagiert grundsätzlich auf jede Veränderung in jedem Tabellenblatt der Datei.
Durch die Abfragen für die Tabellenbereiche der unterschiedlichen Tabellen werden aber lediglich gewollte Reaktionen ausgeführt.

Die gewollten Maßnahmen sind im Allgemeinen Modul ( Modul1 ) als Makros aufgeführt und werden somit exklusiv aufgerufen und ausgeführt

Dass auch eine MsgBox erscheint, wenn du in Tabelle3 etwas änderst, habe ich lediglich zu Demozwecken eingefügt, es passiert dort nämlich nix

Viele Grüsse

Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 18:16:27
Klaus Reich
Danke, danke, danke mkaes ! Eine tolle flexible Lösung, die mehr kann, als ich in meinen kühnsten Träumen erwartet hatte. Alles Querdenken, aller Schnick : wenn, dann - doch aber oder mach vorher noch 'nen Vergleich (ist Ax > Willi, wenn ja, ist dann B100 dicker als ...) ist nicht mehr nötig. Das gefällt mir ! Ich werde in den nächsten Tagen Deine geniale Lösung in mein Projekt einzubauen und hoffe, ich darf mich trotzdem wieder bei Dir melden, wenn's noch wo hakt. Gruß Klaus Reich
Anzeige
AW: Worksheet_Change-Ereignis
04.12.2024 23:46:14
Klaus Reich
Hey emkaes, ich bin zu verblödet (sag' gezz ruhig "ja" !), Deine Makros sichtbar und damit editierbar zu machen. Gute Nacht Klaus

AW: Worksheet_Change-Ereignis
05.12.2024 18:17:07
Klaus Reich
Wieder großen Dank emkaes, warum machen es so viele Spezies und ihre Gewerke dem engagierten Einsteiger immer so schwer ? Ab hier bitte alles mit dem Smiley "Augenzwinkern" sehen. Warum werde ich genötigt, mich in die "Funktionsweise einer Kuh" einzulesen ? Ich will doch nur Milch trinken. Die kann ich beim Discounter bekommen. Alles notwendige hierzu wissen dessen Zulieferer und die Bauern doch viel besser. Klaus
Anzeige
AW: Worksheet_Change-Ereignis
05.12.2024 18:25:22
Onur
Ach, du willst nur was abstauben, ohne die geringsten Anstalten, irgendwas dabei selber zu machen oder zu recherchieren oder gar etwas dabei zu lernen? Damit du in 10 Jahren immer noch für jede Kleinigkeit das Forum fragen musst und die das für dich erledigen dürfen ? (Smiley - Smiley)
Die Milch im Supermarkt musst du ja schliesslich auch bezahlen und hier ist alles kostenlos.
Anzeige
AW: Worksheet_Change-Ereignis
06.12.2024 03:10:51
Klaus Reich
Danke Onur für Deine freundliche Kritik. Du bist und bleibst mein Lieblingskritiker. Doch sorry, ganz so einfach darft's Du's Dir nicht machen. Ich sagte immer ganz offen und ehrlich bin und bleibe Anfänger. Warum ? Die oft verklausulierte Hilfe liefert oft mehr Fragen, als Antworten; führt dazu, daß ich mich verrenne und ich alles abspeichern muß, um dann den Teilerfolg aus der letzten Woche nicht wiederzufinden. Mich so als Blutsauger zu betrachten ist nicht fair. Ich recherchiere vielmehr wochenlang im Netz, um mit der einen erhaltenen Info drei weitere Fragen aufzuwerfen. Irgendwann gebe ich auf; ich bin bis heute nicht in der Lage, Eurem Fachchinesisch zu folgen. Schau hier, guck da, ... aus dem Internet bringt's ebensowenig (Eurer Terminologie kann ich nicht folgen), auch 1 TB an "HowTo" nicht. Der Tipp, eine Auftragsprogrammierung zu veranlasen mutet mich als Rentner wie Hohn an. Im Idealfall bittet man, den Code zu schicken. OK, doch hat sicher keiner von Euch die Lust, sich durch ein paar MB meiner Fehlversuche zu hangeln. Ich bin nicht geizig, zahle vielmehr ca. 3 x im Jahr 60 €/h + MWST an den Spezie, wenn ich mich in Windoofs wieder 'mal verklickt habe (gestern ging's noch, heute bootet er nicht mehr). Sollte ich die Motivation der Herbers, es macht Spaß, selbst auch den Bekloppten "auf's Pferd" zu helfen mißverstanden haben, kann ich mich nur erneut entschuldigen und versuchen, Certified Engineer bei MS zu werden. Als gewinnoriente Unterstützung hatte ich Herber bislang nicht gesehen. Das zum Argument "Milch auch nicht kostenlos". In der Hoffnung auf sachliche Diskussionen, so long Klaus Reich
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18