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

Makro bei Änderung Tabellenblatt ausführen

Makro bei Änderung Tabellenblatt ausführen
18.02.2019 13:04:49
Stefan
Moin zusammen,
ich bastle gerade ein Addin(xlam) und möchte folgendes erreichen:
Sobald der User ein anderes Tabellenblatt auswählt, will ich eine bestimmte Aktion ausführen.
Das Problem: Es ist ja in keiner bestimmten Excel-Datei, da das Makro in einer xlam ist und somit muss bei allen geöffneten Workbooks laufen, d.h. ich will so eine Art Überwachung, wenn der User das Tabellenblatt (welcher Arbeitsmappe auch immer) ändert.
Geht das überhaupt?
Danke und Gruß
Stefan

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 13:17:46
Nepumuk
Hallo Stefan,
auswählt oder ändert? Das sind zwei paar Stiefel.
Gruß
Nepumuk
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 13:37:16
Stefan
"Auswählt", also ich möchte immer eine Sub in meinem xlam ausführen, wenn ein User das Tabellenblatt wechselt ;-)
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 13:43:12
Nepumuk
Hallo Stefan,
im Modul "DieseArbeitsmappe":
Option Explicit

Private mobjApplicationClass As clsApplication

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Set mobjApplicationClass = Nothing
End Sub

Private Sub Workbook_Open()
    Set mobjApplicationClass = New clsApplication
End Sub

In einem Klassenmodul mit dem Namen "clsApplication":
Option Explicit

Private WithEvents mobjApplication As Application

Private Sub Class_Initialize()
    Set mobjApplication = Application
End Sub

Private Sub Class_Terminate()
    Set mobjApplication = Nothing
End Sub

Private Sub mobjApplication_SheetActivate(ByVal Sh As Object)
    MsgBox "Activate " & Sh.Name
End Sub

An Stelle der MsgBox kommt natürlich dein Code.
Gruß
Nepumuk
Anzeige
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 13:50:22
Stefan
Hi Nepumuk,
sehr genial, funktioniert!
Wär ich wahrscheinlich nie so draufgekommen ;-)
Danke und Gruß
Stefan
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 14:22:46
Stefan
Jetzt hab ich nur noch ein "Problem": Wenn ich zwischen 2 Arbeitsmappen wechsle, nimmt er das Event "SheetActivate" erstmal nicht, erst wenn ich in der neu gewählten Arbeitsmappe dann zwischen den Sheets hin und her springe.
Hab es mal mit dem Event "mobjApplication_WorbookActivate(ByVal wb As Object)" versucht, nimmt er aber net.
Hast du dafür vielleicht auch noch eine Lösung? ;-)
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 14:38:40
Stefan
Kommando zurück: mit folgendem Event klappts dann auch beim WB-Wechsel ;-)
mobjApplication_WindowActivate(ByVal wb As Workbook, ByVal Wn As Excel.Window)
Also danke nochmal!
Anzeige
AW: Makro bei Änderung Tabellenblatt ausführen
18.02.2019 14:53:05
Nepumuk
Hallo Stefan,
kann ich nicht nachvollziehen.
Private Sub mobjApplication_WorkbookActivate(ByVal Wb As Workbook)
    MsgBox "Activate " & Wb.ActiveSheet.Name
End Sub

Funktioniert bei mir klaglos.
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige