Der Aufruf sollte dann aussehen
a b
258 =ziffernsumme(a)
(in b soll dann 15 erscheinen.)
es gelingt mir jedoch nicht, eine private Funktion so zu definieren, dass
ich sie von excel aus aufrufen kann....
Wer kann mir helfen?
Vielen Dank!
Walter
Function zisu(z As Integer) As Integer
zisu = z * z 'oder ein anderer hier unwichtiger code
End Function
Rufe ich nun ein neues excel-sheet (Office 2000) auf, kann ich im
add-in-manager auch mein 'ziffernsumme' aktivieren.
aber, was nicht geht: der unten erwähnte Aufruf.....
es erscheint bei Eingabe in einer Zelle
=zisu(3)
nur:
#NAME?
und nun? bitte um Hilfe!
MfG Walter
"Walter Kerelitsch" <w__pleas...@chello.at> schrieb im Newsbeitrag
news:Unfkc.579779$Or1.5...@news.chello.at...
Ich habe ev. gefunden was du suchst:
Du hast zum Beispiel in Zelle A1 die Zahl 531.
In Zelle C3 tippst du =quersumme(A1)
Das Ergebnis ist 9
1. Wechsle in den VBA-Editor (ALT + F11)
2. Menü Einfügen-Modul
3. Lege folgenden Code an:
'-----------------------
Function Quersumme(Zahl As Long)
Dim MyVar1 As Integer, MyVar2 As Integer
Zahl = Fix(Zahl)
For MyVar1 = 1 To Len(CStr(Zahl))
MyVar2 = CInt(MyVar2) + CInt(Mid(Zahl, MyVar1, 1))
Next MyVar1
Quersumme = MyVar2
End Function
'-----------------------
Lass hören, ob's geklappt hat.
Grüss dich, Marcello
Walter Kerelitsch schrieb am 30.04.2004
> also, ich muß präzisieren:
> das ziffernsumme.xla dazu existiert bereits:
>
> Function zisu(z As Integer) As Integer
> zisu = z * z 'oder ein anderer hier unwichtiger code
> End Function
Wo, innerhab des Add-Ins ist die Funktion denn gespeichert?
Sie gehört in ein eigenes Modul der Mappe.
Auch würde ich sie als Public deklarieren:
Puublic Function zisu(z As Integer) As Integer
.....
> Rufe ich nun ein neues excel-sheet (Office 2000) auf, kann ich im
> add-in-manager auch mein 'ziffernsumme' aktivieren.
Steht die Funktion im Funktions-Assistenten unter 'Benutzerdefiniert' zur
Verfügung?
Falls nicht, verschiebe sie innerhalb des Add-Ins wie oben beschreiben.
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
[Win 2000Pro SP-4 / xl2000 SP-3]
Walter Kerelitsch schrieb:
> ich benötige eine Funktion, die es in excel nicht zu geben schein (konkret:
> Ziffernsumme). Nun möchte ich diese in einem Einzeiler in vba realiseren und
> beim sheet dazuhängen.
>
> Der Aufruf sollte dann aussehen
> a b
> 258 =ziffernsumme(a)
>
> (in b soll dann 15 erscheinen.)
ein schönes Beispiel für eine rekursive Funktion:
Public Function QUERSUMME(dblNumber As Double, _
Optional bytCount As Byte = 1, _
Optional intTemp As Integer) As Integer
If Len(CStr(dblNumber)) >= bytCount Then
intTemp = intTemp + Mid(dblNumber, bytCount, 1)
QUERSUMME dblNumber, bytCount + 1, intTemp
End If
QUERSUMME = intTemp
End Function
In einer Zelle aufzurufen mit:
=QUERSUMME(A1)
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
LG Walter
"Thomas Ramel" <t.r...@MVPs.org> schrieb im Newsbeitrag
news:18fea5lf3dlps.1...@40tude.net...
LG WAlter
"Melanie Breden" <Melanie.Br...@mvps.org> schrieb im Newsbeitrag
news:c6sqra$g192a$1...@ID-200118.news.uni-berlin.de...
Vielen Dank!!
LG Walter
"Marcello" <anon...@discussions.microsoft.com> schrieb im Newsbeitrag
news:65b601c42e6d$42e4cb60$a001...@phx.gbl...
Walter Kerelitsch schrieb am 30.04.2004
> Danke, Thomas,
> genau das WO ist mein Problem gewesen... ich hatte es nicht in einem eigenen
> Modul...
Na, dann stimmts ja jetzt :-)
Danke für die Rückmeldung.
Quersumme gibt übrigens auch ohne VBA.
http://michael-schwimmer.de/faq.htm#quersumme
Werner