Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Programmcode im Tabellenblatt oder in eigenem Modul

46 views
Skip to first unread message

bernward

unread,
Feb 26, 2009, 9:21:17 AM2/26/09
to
Hallo zusammen,
wenn ich eigene Funktionen schreibe habe ich zwei Möglichkeiten sie zu
plazieren.
Ich füge sie zu den Ereignisprozeduren der Tabellenblätter hinzu oder
ich plaziere sie in eigene Module. Mir ist nicht klar wann ich die
Funktionen im Tabellenblatt und wann in ein Modul plazieren muss. Kann
mir einer den Unterschied erklären?

Vielen Dank
Bernward


frankarendt-theilen

unread,
Feb 26, 2009, 12:46:22 PM2/26/09
to
Hallo Bernward,
soll die Prozedur nur in einer bestimmten Arbeitsmappe zur Verfügung
stehen, dann im Codemodul der entsprechenden Arbeitsmappe.

Prozeduren die für alle Arbeitsmappen zur Verfügung stehen sollen,
finden ihren Platz in einer Arbeitsmappe, die in dem Ordner XLStart
abgespeichert und automatisch mit dem Öffnen von XL mit geöffnet wird.
XL stellt die besonders benannte Makroarbeitsmappe PERSONL.XLS
(XL2003) bzw. PERSONAL.XLSB (XL2007) hierfür zur Verfügung.


Mit freundlichem Gruß aus der Rattenfängerstadt Hameln
Frank Arendt-Theilen

--
(ehem. MVP für Excel)
Website: www.xl-faq.de

Andreas Killer

unread,
Feb 27, 2009, 10:37:58 AM2/27/09
to
bernward schrieb:

> wenn ich eigene Funktionen schreibe habe ich zwei Möglichkeiten sie zu
> plazieren.
> Ich füge sie zu den Ereignisprozeduren der Tabellenblätter hinzu oder
> ich plaziere sie in eigene Module. Mir ist nicht klar wann ich die
> Funktionen im Tabellenblatt und wann in ein Modul plazieren muss. Kann
> mir einer den Unterschied erklären?

Wenn Du eine Function oder Sub im Codemodul eines Tabellenblattes oder
der Arbeitsmappe (DieseArbeitsmappe) plaziert, dann ist sie nicht in
anderen Modulen oder in der Makroliste (Alt-F8) oder im
Funktionsassitenten (fx) in Excel sichtbar, auch wenn Du sie als
Public deklarierst.

Plazierst Du Sie in einem normalen Modul dann ist sie überall sichtbar
und auch aufrufbar.

Die Aufrufbarkeit von Sub's in der Makroliste, bzw. Function's im
Funktionsassitenten kannst Du mit einem "Option Private Module" in der
ersten Zeile Deines normalen Moduls für alle Sub's /Function's
unterdrücken.

Sollen nur einzelne Sub's /Function's "unsichtbar" sein, dann
deklariere sie als Private.

Mit einem Trick kommt man via VBA auch an Sub's/Function's in
Tabellenblättern dran, die nicht explizit Private sind:
Sheets("Tabelle1").SubName

Andreas.

0 new messages