Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Funktionen in XLAM nutzen
#1
Hallo,

ich habe einige public Funktionen (z.B. PosersterBuchstabe) in einem normalen Modul (Modul1) als xlam gespeichert. Das Addin heißt MeineProgramme.xlam

Dieses Addin ist so eingerichtet, dass es automatisch bei jeder Excelmappe mit geladen wird. D.H. wenn ich eine neue Excel Datei erstelle und Alt F11 drücke, erscheint auch das VBA Project.

Versuche ich einen Verweis darauf zu setzen erscheint "Name steht im Konflikt mit vorhandenem Modul.....",
was meiner Ansicht heißt, dass das Addin aktiv ist.

Meine Frage lautet: Wie kann ich aus einer Neuen Exceldatei die Functionen in dem Addin aufrufen?

Folgendes habe ich bereits versucht:

Debug.Print PosersterBuchstabe("06X567")
Ergebnis: Sub oder Function nicht definiert

Debug.Print MeineProgramme.PosersterBuchstabe("06X567")
Ergebnis: Objekt erforderlich

Debug.Print MeineProgramme.Modul1.PosersterBuchstabe("06X567")
Ergebnis: Objekt erforderlich

Kann mir jemand sagen wie der Aufruf richtig heisst? Bzw. wie ich darauf zugreifen kann?

LG Klaus
Antworten Top
#2
Hallo,

bei Deinen Fehlermeldungen ...
zeige uns mal Deinen Gesamtcode.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
Der Code in der neuen Datei in Tabelle1 lautet:

Code:
Sub testPosersterBuchstabe()
'Debug.Print PosersterBuchstabe("06X567")
'Debug.Print MeineProgramme.PosersterBuchstabe("06X567")
Debug.Print MeineProgramme.Modul1.PosersterBuchstabe("06X567")
End Sub
Der Code im Modul 1 in der XLMA Datei lautet:
Code:
Public Function PosersterBuchstabe(str_Zeichenfolge As String) As Integer
For i = 1 To Len(str_Zeichenfolge)
    If Not IsNumeric(Mid(str_Zeichenfolge, i, 1)) Then
        PosersterBuchstabe = i
        Exit For
    End If
Next
End Function
Antworten Top
#4
Gibt es mehrere Functions namens 'PosersterBuchstabe' ?

Code:
Public Function PosersterBuchstabe(c00 As String)
   if len(c00)<> len(format(val(c00))) then PosersterBuchstabe = len(format(val(c00)))+1
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Nein.

In der neuen Exceldatei gibt es nur den Aufruf PosersterBuchstabe und in der xlam Datei gibt es auch nur die eine Funktion.

Wenn ich die Sub in das Modul der xlam Datei kopiere und ausführe funktioniert es.

Es liegt also nur an dem Aufruf, oder daran dass die xlam nicht richtig eingebunden ist.
Antworten Top
#6
Ob die folgenden Hinweise mit dem Problem etwas zu tun haben weiss ich nicht.

Im  Menü habe ich mir eine Schaltfläche erstellt. Diese Schaltfläche wird in jeder Exceldatei angezeigt. Drückt man auf die Schaltfläche, so wird eine Sub in der XLAm Datei ausgeführt.

Unter Entwicklertools Makros wird weder die SUB noch die Function von der XLAM angezeigt.

In einer Zelle kann ich eine Function aus der xlam einfügen. Diese wird auch ausgeführt. z.B. =PosersterBuchstabe(A1)


Wie gesagt, die Frage ist, wie kann ich die in der XLAM Datei gespeicherte Funktion aus einer anderen Exceldatei aufrufen? Huh
Antworten Top
#7
So,

ich habs selbst herausgefunden..... :19:

Ich habe in der XLAM in den Eigenschaften VBAProject MeineTools umbenannt. 
Achtung!!! beim Schliessen kommt kein Hinweis, dass die Änderung nicht gespeichert wird.

Anschließend kann man in der neuen Datei unter Extras Verweise MeineTools auswählen. Dannacht kann man die Function ganz normal mit

Code:
Debug.Print PosersterBuchstabe("06X567")


aufrufen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste