Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
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

Worksheet_Change in Modul auslagern

Worksheet_Change in Modul auslagern
21.05.2020 13:11:55
Kulo
Hallo Excelfreunde,
ich habe eine Arbeitsmappe mit vielen identischen Tabellenblättern für verschiedene Zeiträume angelegt.
Auf jedem Tabellenblatt wird bei einer Änderung in einem bestimmten Bereich ein Kommentar an die aktive Zelle angehängt, bearbeitet oder gelöscht.
Jetzt habe ich den erfordelichen Code unter jedes einzelne Tabellenblatt gelegt.
Bei einer Änderung des Codes muss ich diese Änderung in jedem Blatt einzeln vornehmen, was ich vereinfachen möchte.
So, wie ich ein Makro mit "call" aufrufen kann, funktioniert es aber nicht.
Wie kann ich es bewerkstelligen, dass ich den Großteil des Codes z.B. in ein Modul auslagere und von jedem Tabellenblatt bei einer Änderung im relevanten Bereich auf diesen Code zugreife?
In ungefähr so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B14:M18")) Is Nothing Then
mach genau das, was du auch auf Tabelle1 gemacht hättest
End If
End Sub

Ich würdemich sehr freuen, wenn mir da jemand weiterhelfen würde.
Viele Grüße
Kulo

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nicht ins Modul auslagern
21.05.2020 13:32:06
Matthias
Hi
benutze das
Workbook_SheetChange - Ereignis
Code gehört in diese Arbeitsmappe
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("B14:M18")) Is Nothing Then
MsgBox "macht das in jeder aktiven Tabelle bei Änderung"
End If
End Sub
Gruß Matthias
AW: nicht ins Modul auslagern
21.05.2020 13:51:39
Kulo
Hallo Matthias,
vielen Dank. Das ist, was ich gesucht habe.
Eine Frage noch:
Da nicht in allen Tabellenblättern meiner Mappe der angegebene Bereich überprüft werden soll, habe ich
If Not Intersect(Target, Range("B14:M18")) Is Nothing And ActiveSheet.Name Like "20**" Then
ergänzt. Es funktioniert. Aber ist dies auch korrekt oder so üblich?
Anzeige
wenns funktioniert ist es doch ok ;-) owT
21.05.2020 14:20:45
Matthias
AW: wenns funktioniert ist es doch ok ;-) owT
21.05.2020 14:25:06
Kulo
Hmm, man weiß ja nie. ;-)
Excel und ich sind noch nicht ganz so dicke Kumpels.
Also vielen Dank für deine Hilfe und noch einen schönen Feiertag.
Viele Grüße
Kulo
Nimm statt ActiveSheet.Name, sh.Name (owT)
21.05.2020 14:44:57
EtoPHG

nur weils kürzer ist ;-) ist doch total "wurscht"
21.05.2020 14:51:18
Matthias
.
AW: nur weils kürzer ist ;-) ist doch total "wurscht"
21.05.2020 15:31:48
Luschi
Hallo Matthias,
wenn eine Ereignis-Routine Übergabeparameter anbietet, dann sollte man diese auch benutzen.
Eigentlich fehlt ja noch die Prüfung, ob 'Sh' überhaupt vom Typ 'Worksheet' ist, denn in einem Diagrammblatt würde ein Error auftauchen, egal ob sh oder ActiveSheet.
Gruß von Luschi
aus klein-Paris
Dieses Ereignis gibt es nicht in Diagrammen! owT
21.05.2020 15:47:09
Matthias
AW: Worksheet_Change in Modul auslagern
21.05.2020 13:33:21
Hajo_Zi
Hallo Kulo,
unter DieseArbeitsmappe
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Anzeige
AW: Worksheet_Change in Modul auslagern
21.05.2020 14:27:23
Kulo
Hallo Hajo,
vielen Dank für deine Hilfe.
Es war das, was ich gesucht habe.
Wünsch dir noch einen schönen Feiertag und
viele Grüße
Kulo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige