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

Alle Ereignisse unter DieseArbeitsmappe

Alle Ereignisse unter DieseArbeitsmappe
Franz
Hallo Profis,
wenn ich sämtliche "Selection_Change"-Codes udgl. in "DieseArbeitsmappe" auslagern würde, bekäme ich dadurch ein Performance-Gewinn sprich Tempo? Sind Vorteile oder Nachteile bekannt?
Grüße
Franz D.
AW: Alle Ereignisse unter DieseArbeitsmappe
04.12.2009 16:33:29
JogyB
Hi.
Ich würde eher einen Performance-Nachteil erwarten, da Du noch weitere Prüfroutinen brauchst, um sicherzustellen, dass der Code auch zum Tabellenblatt paßt. Und zudem setzen Zellbezüge eine Ebene höher an, was beim Zugriff etwas Zeit kosten könnte.
Ansonsten sehe ich nicht, wieso die Ausführungsgeschwindigkeit vom Speicherort des Codes abhängen sollte.
Gruss, Jogy
AW: Alle Ereignisse unter DieseArbeitsmappe
04.12.2009 16:51:54
Franz
Hallo und Danke Jogy!
Wie beim Millionär, würde ich mich gerne noch absichern mit andere(n) Meinung(en). Ich hoffe du hast dafür Verständnis.
Gruß
Franz D.
Alle Ereignis-Makros unter DieseArbeitsmappe
04.12.2009 16:59:28
fcs
Hallo Franz D.,
Die Sheet-Ereignis-Makros unter DieseArbeitsmappe sollte man dann verwenden, wenn in vielen/allen Blättern die gleichen Ereignisse überwacht und Aktionen ausgeführt werden sollen.
Tempo-Gewinn erzielt man keinen.
Da ja ggf. zusätzliche Prüfungen eingebaut werden müssen, um die Aktionen in bestimmten Blättern zusteuern, dürfte die Ausführung der Makros geringfügig (aber kaum spürbar) langsamer sein.
Vorteile:
Hauptvorteil ist natürlich, dass man für gleiche Aktionen in mehreren Blätter die Prozeduren zentral an einer Stelle verwalten und pflegen kann.
Man kann ggf. Tabellenblätter in eine externe Mappe kopieren, die keinen VBA-Code beinhalten, in ihrer Ursprungsmappe aber mit VBA-Unterstützung bearbeitet werden. Dies ist zumindest für Excel 2003 noch relevant, Excel 2007 ermöglicht ja standardmäßig das Speichern ohne Code.
Nachteile:
Man muss beim Programmieren darauf achten, dass die Aktionen in den richtigen Blättern erfolgen. Das kann man aber leicht mit Select Case-Anweisungen steuern.
Außerdem gilt zu beachten, dass Prozeduren, die im Tabellenblatt-Modul definiert sind immer vor den entsprechenden Prozeduren unter DieseArbeitsmappe ausgeführt werden.
Gruß
Franz
Anzeige
AW: Alle Ereignis-Makros unter DieseArbeitsmappe
04.12.2009 17:34:22
Franz
Von Franz zu franz,
Zitat:"Außerdem gilt ... vor den entsprechenden Prozeduren ...ausgeführt werden."
Heisst das dass ich ein "Selection-Change" sowohl als auch (identisch dann noch?) in einem Blatt und zusätzlich unter "DieseArbeitsmappe" platzieren kann? Würde ich natürlich nicht tun, Redundanz ist kontra-produktiv, würde nur wissen ob Vba dies zulässt.
Gruß
Franz D.
AW: Alle Ereignis-Makros unter DieseArbeitsmappe
04.12.2009 17:48:09
fcs
Hallo Franz,
ja die sequenzielle Folge der beiden Prozeduren ist möglich.
Probiere einfach mal die folgeden beiden Prozeduren.
Gruß
Franz
'Prozedur im Tabellenmodul von Tabelle1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$2" Then
MsgBox " Ich bin das Worksheet-Selektion_Ereignis für Zelle B2"
End If
End Sub
'Prozedur unter DieseArbeitsmappe
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Sh.Name
Case "Tabelle1"
If Target.Address = "$B$2" Then
MsgBox " Ich bin das Sheet-Selection_Ereignis unter diese Arbeitsmappe für B2"
End If
Case Else
End Select
End Sub

Anzeige
AW: Alle Ereignis-Makros unter DieseArbeitsmappe
04.12.2009 17:53:36
Franz
Hallo Franz!
Na sowas! Nach dem Motto "Doppelt genäht hebt besser". Herzlichen Dank für die Lehrstunde.
Tschüss!
Franz D.
Das ist noch nicht alles! Es gibt noch 'ne 3.! orT
04.12.2009 21:34:01
Luc:-?
Gruß Luc :-?
Hallo Luc, es gibt noch 'ne 3. und wie sieht...
04.12.2009 21:58:37
Andre´
diese aus?
MFG Andre
Im Prinzip genauso, aber dazu musst du...
05.12.2009 01:20:57
Luc:-?
...ein Klassenmodul für die Ereignisse des Application-Objekts anlegen, Andre.
Die sind vorhanden, aber normalerweise nicht so voreingestellt. Wenn du aber alles so machst wie in der VBE-Hilfe beschrieben, kannst du die Ereignisprozz auch im rechten Fenster finden. Die haben dann allerdings noch eine Variable mehr Wb As Workbook...
Wenn man das in ein AddIn steckt, kann man damit interessante Effekte erzielen; bspw Auswahlverhinderung von Zellen in ungeschützten Blättern...
Gruß Luc :-?
Besser informiert mit...
Anzeige
Danke:-)
05.12.2009 22:47:31
Andre´
Hallo Luc,
danke für den Hinweis, habe alles erfolgreich umsetzen können.
MFG Andre
Re: Bitte! Viel Spaß! ;-) Gruß owT
06.12.2009 02:18:54
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige