Clever-Excel-Forum

Normale Version: suche Benutzerdefinierte Funktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
da ich mich mit der Syntax nicht auskenne wäre ich über Hilfe sehr dankbar.

Ich muss regelmäßig berechnen wie oft ein Wert zB. durch 150 teilbar ist und wie groß der REST ist.
Ich suche also die Syntax einer benutzerdefinierten Funktion für folgende Formel:


=WENN((A1)<0;"- ";"+ ")&GANZZAHL(ABS(A1)/B1)&" . "&TEXT(REST(ABS(A1);B1);"000")

Beispiel
A1 = 6671 = Wert (sowohl positiv wie negativ möglich)
B1 =   150 = Teiler
Ergebnis (Text) = + 44 . 071


Das gleiche wenn möglich in einer weiteren Funktion auch umgekehrt.
A1= + 44 . 071
B1=150
Ergebnis = 6671
Meine Formel :
=(ABS(GLÄTTEN(LINKS(WECHSELN(A1;".";WIEDERHOLEN(" ";50));10)))*B1+TEIL(A1;FINDEN(".";A1)+2;99))*WENN(ISTFEHLER(FINDEN("-";A1));1;-1)

Ich habe einfach mal einige Werte in eine Liste eingegeben und die Formeln die ich ersetzen möchte eingefügt


Danke und LG
Holger
Hallo,

auf die Schnelle (ist sicher Verbesserungsfähig):
Code:
Public Function TeilerErmitteln(Wert As Long, Teiler As Long) As String
    TeilerErmitteln = IIf(Wert < 0, "- ", "+ ") & Abs(Wert) \ Teiler & " . " & Format(Abs(Wert) Mod Teiler, "000")
End Function
Public Function TeilerRueckrechnung(Eingabe As String, Teiler As Long) As Long
Dim temp
    temp = Split(Eingabe, " . ")
    TeilerRueckrechnung = IIf(Left(Eingabe, 1) = "-", -1, 1) * (Abs(CLng(temp(0))) * Teiler + temp(1))
End Function
Hallo Michael
ich bedanke mich recht herzlich, funktioniert perfekt und sieht in der Liste doch viel besser aus wie meine Formel!


GELÖST

Allen fleißigen Helfern in diesem tollen Forum auf diesem Wege noch mal DANKE.
Alle Zusammen, einen guten Rutsch sowie ein glückliches und gesundes Jahr 2019.

Gruß Holger
Hallo, :19:

nur als Ergänzung zu Michaels Funktion:

Wenn Du eine funktionierende Formel hast, dann kannst du das in VBA immer mit der Funktion Evaluate (die noch viel mehr kann) ausgeben lassen. Ich habe es mal in Dein Beispiel mit eingetragen: :21:
[attachment=21615]

Dir auch einen Guten Rutsch und ein Gutes Neues Jahr...
(30.12.2018, 20:10)Case schrieb: [ -> ]nur als Ergänzung zu Michaels Funktion:
Wenn Du eine funktionierende Formel hast, dann kannst du das in VBA immer mit der Funktion Evaluate (die noch viel mehr kann) ausgeben lassen. Ich habe es mal in Dein Beispiel mit eingetragen: :21:

Hallo @ Case
Mit der Info ist für mich eine benutzerdefinierte Funktion einfacher zu erstellen. DANKE
da kommt jetzt aber sofort eine neue Frage auf:
Du hasst die Datei als *.xlsb gespeichert. Wo liegt der Unterschied zu *.xlsm
Gruß Holger
Hallo Holger, :19:

ich speichere meine Dateien in der Regel immer im "XLSB-Format". Hier werden die Daten binär gespeichert. Die Datei ist vom Speichervolumen kleiner, öffnet und speichert scheller. :21:
DANKE
Guten Rutsch und ein Gutes Neues Jahr...