Vielen Dank
Bernward
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
> 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.