Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro ausführen, wenn anderes Blatt aktiviert wird

Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 14:44:00
Wolfgang
Hallo zusammen,
In Tabelle 1 (Blatt1) habe ich ein Makro aufgezeichnet, dieses soll immer dann, wenn ich Tabelle2 (Blatt2) angewählt habe ausgeführt werden.
Ich bekomme es einfach nicht hin.
Habe im VBA-Basic-Editor in Tabelle1 Worksheet angewählt.
Dann Deactivate ausgewählt und das Makro dort hineinkopiert.
Es klappt aber nicht, was mache ich falsch.
Danke im voraus
Gruß Wolfgang

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 14:47:16
Andi
Hi,
verwende das Activate-Ereignis von Tabelle2.
Schönen Gruß,
Andi

AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 14:54:00
Wolfgang
Hallo Andi,
Danke für die schnelle Antwort.
Das habe ich schon probiert, aber irgend etwas mache ich da wohl etwas falsch.
Kann ich das komplette aufgezeichnete Makro dort hineinkopieren oder muss in dem aufgezeichneten etwas weglassen.
Muss ich in dem aufgezeichnetem Makro auch Tabelle1 wieder mit aufgerufen.

AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 14:58:08
Andi
Hi,
Kann ich das komplette aufgezeichnete Makro dort hineinkopieren oder muss in dem aufgezeichneten etwas weglassen.
Muss ich in dem aufgezeichnetem Makro auch Tabelle1 wieder mit aufgerufen.

Wenn ich Dir das beantworten soll, musst Du mir schon Dein Makro zeigen.
Ganz allgemein würde ich immer das Tabellenblatt mit referenzieren, also zB
Sheets("Tabelle1").Range("A1")
statt einfach
Range("A1")
Schönen Gruß,
Andi

Anzeige
AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 15:11:57
Wolfgang
Hallo Andi,
So sieht mein Makro dann aus:

Private Sub Worksheet_Activate()
Sub Piepser_automatisch_sortieren()
' Piepser_automatisch_sortieren Makro
' Makro am 07.05.2008 von Wolfgang Rinke aufgezeichnet
Sheets("Piepser").Select
Range("B3:D71").Select
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.ScrollRow = 50
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 36
ActiveWindow.ScrollRow = 33
ActiveWindow.ScrollRow = 30
ActiveWindow.ScrollRow = 28
ActiveWindow.ScrollRow = 26
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 22
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 3
Range("B3").Select
Sheets("Alarmierungsliste").Select
End Sub


End Sub


Wäre super, wenn du mir helfen könntest.
Gruß Wolfgang

Anzeige
AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 15:33:00
Andi
Hi,
also zunächst darfst Du natürlich nicht die Zeile
Sub Piepser_automatisch_sortieren()
in die andere Sub mit hineinkopieren
Zum zweiten kannst Du Dir die ganzen ScrollRow-Zeilen komplett sparen, da hat der Makrorekorder nur aufgezeichnet, wie auf der Seite rumgescrollt hast; ebenso können die ganzen Selects weggelassen werden.
Übrig bliebe dann

Private Sub Worksheet_Activate()
Sheets("Piepser").Range("B3:D71").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Dann wird beim Blatt-Wechsel auf der Bereich B3:D71 auf der Tabelle Piepser sortiert.
Schönen Gruß,
Andi

Anzeige
AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 15:50:44
Wolfgang
Danke Andi,
bekomme es im Moment noch nicht hin, muss leider jetzt auch noch weg.
Hatte Deine Änderung mal hineinkopiert, hat aber noch nicht geklappt.
Hatte dieses Makro mal probiert.
Es hat geklappt, aber nach dem sortieren sprang die Anzeige immer zwischen den Blättern hin und her (sehr schnell)

Private Sub Worksheet_Activate()
' Makro am 07.05.2008 von Wolfgang aufgezeichnet
Sheets("Piepser").Select
Application.Run _
"'Alarmierungsliste fertig-3.xls'!Piepser_aufsteigend_sortieren"
Sheets("Alarmierungsliste").Select
End Sub


Versuche es morgen noch mal
Nochmals vielen Dank, vielleicht bis morgen

Anzeige
AW: Makro ausführen, wenn anderes Blatt aktiviert wird
07.05.2008 16:00:53
Andi
Hi,
aber nach dem sortieren sprang die Anzeige immer zwischen den Blättern hin und her (sehr schnell)
Ich nehme an, dass Makro steckt im Modul der Tabelle Alarmierungsliste?
Dann ist das kein Wunder, weil mit dem letzten Befehl diese Tabelle wieder angesprungen wird, was wiederum das Activate-Ereignis auslöst; das würde dann bis in alle Ewigkeit so gehen.
Am besten - und das gilt nicht nur in diesem Fall - verzichtest Du völlig auf Select und Activate, und sprichst die Zellen inklsuive Blatt-Name direkt an, wie von mir bereits zwei Mal vorgeschlagen.
Schönen Gruß,
Andi

Anzeige
DANKE es klappt !
08.05.2008 07:12:01
Wolfgang
Hallo Andi,
Jetzt habe ich es hinbekommen.
Mit dem Makro von Dir.

Private Sub Worksheet_Deactivate()
Sheets("Piepser").Range("B3:D71").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo,  _
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Ich habe es in Tabelle1 (Piepser) gepackt.
Nochmals vielen Dank für Deine Hilfe
Grüße aus Duisburg, Wolfgang

gern geschehen... (ot)
08.05.2008 13:36:10
Andi
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige