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

Namen und Funktionen

Namen und Funktionen
Born
Hallo Forum,
vor einiger Zeit habe ich mal hier einen Artikel gelesen, in dem beschrieben wurde, wie man über einen Namen ein Makro startet. Ich weiß leider nicht mehr, von wem dieser Tipp kam und finde ihn auch nicht mehr über die SuFu. Hat vielleicht jemand zufällig den Link parat?
Vielen Dank,
M. Born

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Namen und Funktionen
14.07.2009 16:36:50
Jogy
Hi.
Wieso willst Du das über einen Namen machen? Wenn Du eine User Defined Function nimmst, dann kannst Du die doch direkt aufrufen.
Gruss, Jogy
AW: Namen und Funktionen
14.07.2009 16:53:28
Born
Hallo Jogy,
der Vorteil ist, dass man die Namen ausblenden und so einen erhöhten Schutz gegen unberechtigte Änderungen einbauen kann. Die UDFs lassen sich zu einfach nachvollziehen.
Viele Grüße,
M. Born
AW: Namen und Funktionen
14.07.2009 18:23:42
JogyB
Hi.
Verstehe ich jetzt nicht... das VBA-Projekt kannst Du schützen, die Formeln in den Zellen mit Blattschutz ausblenden. Dass sich das umgehen läßt ist klar, nur ist Excel sowieso nie 100%ig sicher.
Ich lass die Frage mal offen.
Gruss, Jogy
Anzeige
AW: Namen und Funktionen
15.07.2009 08:25:08
Born
Vielen Dank für die Rückmeldungen. Ist zwar immer noch nicht das, was ich brauche, aber vielleicht erinnert sich ja noch jemand an den damaligen Post.
M. Born
AW: Namen und Funktionen
15.07.2009 13:08:47
fred
Hallo Born,
hab Frage nicht richtig Verstanden, aber meinst Du sowas?
'wenn in A1 fred geschrieben wird dann mach was

Private Sub Worksheet_Change(ByVal Target As Range)
If intersect(target, Range("A1")) is nothing or target.cells.count > 1 then exit sub
If Target.Value = "Fred" Then
MsgBox ("Dies ist ein Test")
End If
End Sub
Fred
Anzeige
AW: Namen und Funktionen
15.07.2009 13:17:45
Born
Hallo Fred,
vielen Dank, aber ich suche eigentlich etwas anderes.
M. Born
erkläre Ablauf
15.07.2009 14:49:55
Tino
Hallo,
kannst Du mal in kurzen Sätzen erklären wie Du es meinst oder wie dies von statten gehen soll?
Vielleicht können wir es ja dann versuchen nachzustellen.
Gruß Tino
AW: erkläre Ablauf
15.07.2009 15:44:35
Born
Hallo Tino,
ich erinnere mich leider nicht mehr an alles, denn sonst bräuchte ich den Artikel ja nicht mehr. Man erstellt als erstes eine eigene Funktion. Anschließend definiert man einen Namen und gibt als Bezug statt einer Zelle bzw. einem Bereich den Makronamen an. Wenn später in einem anderen Makro auf den Namen zugegriffen wird - ich glaube über Application.Names() - , dann wird dort die Funktion aufgerufen.
Leider funktioniert das Ganze bei mir nicht richtig. Manchmal wird die Funktion 2 mal gestartet, in einem anderen Beispiel garnicht, obwohl der Code ähnlich aufgebaut ist. Ich wollte in dem Thread nocheinmal nachlesen, ob irgendwelche weiteren Randbedingungen erfüllt sein müssen o.ä.
M. Born
Anzeige
so richtig verstehe ich nicht...
15.07.2009 16:26:12
Tino
Hallo,
für was dies gut sein soll.
Schreibe Dein Makro doch mit Private Sub …, dann sind diese auch nicht unter Makros gelistet.
Wenn sich dieses Makro im gleichen Modul befindet kannst Du es mit Call … aufrufen.
Befindet es sich in einem anderen Modul, rufe es mit Application.Run …
Möchtest Du alle Makros in diesem Modul nicht angezeigt bekommen,
schreibe in den Kopf Option Private Module, dann kannst Du auch auf Private Sub … verzichten und diese auch mit Call aufrufen.
Beispiel 1:
kommt als Code in Modul1
Option Explicit 
 
Sub Beispiel() 
 Application.Run "Modul2.TestMakro" 
End Sub 
kommt als Code in Modul2
Option Explicit 
 
Private Sub TestMakro() 
 MsgBox "TestMakro gestartet" 
End Sub 
Beispiel 2:
kommt als Code in Modul1
Option Explicit 
 
Sub Beispiel() 
Call TestMakro 
End Sub 
kommt als Code in Modul2
Option Explicit 
Option Private Module 
 
Sub TestMakro() 
 MsgBox "TestMakro gestartet" 
End Sub 
Gruß Tino
Anzeige
AW: so richtig verstehe ich nicht...
15.07.2009 17:38:07
Born
Hallo Tino,
die Möglichkeiten, einzelne Prozeduren bzw. ein Modul auf Private zu setzen, sind mir schon bekannt. Sie lassen sich aber mit wenig Aufwand selbst durch Anfänger umgehen bzw. knacken. Mir schwebt ein etwas anderes Konzept vor, in dem die dargestellte Variante nur einen Teil der Sicherheitsmechanismen abdeckt. Scheinbar ist keinem der Nutzer der alte Thread bekannt. Ich hatte gehofft, dass zumindest einige der "Hardcore"-Nutzer diesen Trick kennen und mir entsprechend Hilfe bieten können. Aber vielleicht schaut ja morgen nochmal jemand hier rein.
Vielen Dank für Deine Hilfe,
M. Born
Anzeige
in Excel ist nichts sicher...
15.07.2009 18:10:13
Tino
Hallo,
und nur weil ich eine Sub oder Funktion durch einen Namen aufrufe ändert dies daran auch nichts,
warum auch die Prozedur ist immer noch dort wo sie ist, wo sollte sie auch hinkommen.
Du könntest höchstens mal so was testen und Deine Excel- Datei in eine kompilierte exe verwandeln
Google mal nach Excel Compiler
Oder mit VB6 oder ähnlichen eine dll erstellen die Du mit Adminrechten einbinden kannst, sollte auch recht sicher sein.
Bleibt nur die Frage, Lohnt sich der Aufwand?
Ich bin der Meinung, die die sich mit VBA auskennt haben keine Lust irgendwelche Cods zu knacken.
Die die sich mit VBA nicht auskennen, können mit einem komplexen Code meist wenig anfangen.
Gruß Tino
Anzeige
AW: Namen und Funktionen
15.07.2009 15:15:00
EffHa
Hallo M.
vielleicht über ein Menü?
Option Explicit
Sub MakroTest()
MsgBox "Makro wurde gestartet"
End Sub

Sub MenuErstellen()
Dim MenuMakros As CommandBarControl
Dim MB As CommandBarControl
Dim Pos&
' erstellt einen Menüentrag in Zeile 1
Application.CommandBars(1).Protection = msoBarNoProtection
Pos = Application.CommandBars(1).Controls.Count - 1
Set MenuMakros = CommandBars(1).Controls.Add(Type:=msoControlPopup, before:=Pos, _
temporary:=True)
MenuMakros.Caption = "My-Macros"
'Eintrag eines Makros
Set MB = MenuMakros.Controls.Add(Type:=msoControlButton)
With MB
.Caption = "Dies ist ein von mir erstelltes Makro"
.OnAction = "MakroTest"
.BeginGroup = True
.Style = msoButtonIconAndCaption
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige