eine funktionierende Hilfe für selbstgebaute Funktionen(UDF) wird von MS leider nicht angeboten. Mit einem VBA-Code (den ich nach sehr langer Suche erst finden konnte) kann man die UDFs zwar im Funktionsassistenten (FA) registrieren, aber so elegant wie die XL-internen Funktionen ist das dann nicht. Also: selbst ist d'r Bastler und ich habe mal gebastelt und dabei eigentlich nur den FA nachgebaut.
Das Ergebnis besteht im Wesentlichen aus fünf Teilen: wenige Zeilen VBA für DieseArbeitsmappe (siehe folgenden Code), ein paar mehr Zeilen im Modul mdlUDPHelper und einer lustigen Userform. Dann noch natürlich ein allg. Modul mdlFunctions, das Ihr mit Euren eigenen Funktionen füllt (ein paar Beispiele sind schon drin) und ein Arbeitsblatt, das den Namen UDFhelp trägt.
Alle Teile gibt es hier als Anhang, die Ihr ohne großen Aufwand einfach in eine neue Arbeitsmappe importieren könnt. Was Ihr Euch da aufhalst, will ich hier erläutern. Manche Änderungen in XL sind deutlich, also bitte sorgfältig lesen! Mit
Code: Alles auswählen
Option Explicit
Private Sub Workbook_Open()
Dim sht As Worksheet
For Each sht In ThisWorkbook.Sheets
If sht.Name = "UDFhelp" Then
Exit For
End If
ThisWorkbook.Sheets.Add
With ActiveSheet
.Name = "UDFhelp"
.Visible = False
End With
Next
Application.OnKey "{F1}", "ShowUDFhelp"
End Sub
Der Code der Userform und des Moduls mdlUDFhelper sollte nicht modifiziert werden, wenn man nicht sehr genau weiß, was man da tut. Diesen also einfach nur in die neue Arbeitsmappe importieren und die Arbeitsmappe unter einem beliebigen Namen, aber im Format .xlsb speichern, schließen und wieder öffnen.
Wir Ihr seht, seht Ihr nichts. Denn erst einmal habt Ihr einfach eine leere Mappe vor Euch. Hinter den Kulissen ist Folgendes passiert:
Beim Aufruf wurde die Taste F1mit dem UDFhelper belegt. Mit seinem Aufruf werden die im mdlFunctions vorhandenen UDFs mit ihren Argumenten, Optionen und Kommentaren in das Blatt UDFhelp geschrieben und zudem im FA registriert, können dort also wie die XL-internen Funktionen genutzt werden (wenn auch ohne Hilfe).
Getestet werden kann das Ganze mit folgendem Beispiel: Man schreibe in Zelle A1 das unsinnige Wort "ABC20$§xyz", schreibe den Funktionsnamen "ABC" in B1, bestätige mit Enter, aktiviere B1 erneut und drücke die Taste F1 und schon erscheint diese Userform: Je nach Eintrag in den ersten drei TextBoxen erhält man ein unterschiedliches Ergebnis. Das letzte Textfeld (Label) dient erst einmal nur als Beispiel, wie die Funktion denn aussehen könnte. Tatsächlich zusammengebaut wird sie erst mit dem Button Execute. So sind Korrekturen möglich.
Und hier die zu importierenden Codes/Module als ZIP:
Und nun als echte Premiere das dicke Ende
Diese Bastelei wirklich Bullet Proof zu machen habe ich mich noch nicht bemüht. Es kommt also durchaus zu ungemütlichen Fehlermeldungen. Wer eine optimierte Version möchte, dem helfe ich gerne, allerdings mit einem kleinen Haken: Der Betrieb dieses Forums kostet mein privates Geld und ich freue mich über kleine Spenden, die bei der Bezahlung ein bisschen helfen. Firmen sparen durch meine kleinen Helfer vielleicht ein paar Minuten pro Tag. Das würde mir schon genügen. Kontakt dazu bitte per PN.
Viel Spaß mit dem kleinen Tool ...