Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Eigene vba-funktion für excel erstellen

23 views
Skip to first unread message

Walter Kerelitsch

unread,
Apr 29, 2004, 6:32:20 PM4/29/04
to
hi excel-fans,
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.)
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

Walter Kerelitsch

unread,
Apr 29, 2004, 9:39:39 PM4/29/04
to
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

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...

Marcello

unread,
Apr 30, 2004, 12:40:28 AM4/30/04
to
Hallo Walter

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

Thomas Ramel

unread,
Apr 30, 2004, 1:46:27 AM4/30/04
to
Grüezi Walter

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]

Melanie Breden

unread,
Apr 30, 2004, 2:15:37 AM4/30/04
to
Hallo Walter,

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#

Walter Kerelitsch

unread,
Apr 30, 2004, 6:29:10 AM4/30/04
to
Danke, Thomas,
genau das WO ist mein Problem gewesen... ich hatte es nicht in einem eigenen
Modul...

LG Walter


"Thomas Ramel" <t.r...@MVPs.org> schrieb im Newsbeitrag
news:18fea5lf3dlps.1...@40tude.net...

Walter Kerelitsch

unread,
Apr 30, 2004, 6:29:50 AM4/30/04
to
Danke, Melanie,
Problem nun gelöst, siehe meine anderen Antworten!

LG WAlter


"Melanie Breden" <Melanie.Br...@mvps.org> schrieb im Newsbeitrag
news:c6sqra$g192a$1...@ID-200118.news.uni-berlin.de...

Walter Kerelitsch

unread,
Apr 30, 2004, 6:32:07 AM4/30/04
to
Danke, Marcello,
genau an Deinem "Punkt 2. Menü - Einfügen Modul" ist es bei mir gelegen -
ich hatte es immer wo anders stehen, und dann ist es von excel aus nicht
sichtbar.

Vielen Dank!!
LG Walter


"Marcello" <anon...@discussions.microsoft.com> schrieb im Newsbeitrag
news:65b601c42e6d$42e4cb60$a001...@phx.gbl...

Thomas Ramel

unread,
Apr 30, 2004, 8:44:55 AM4/30/04
to
Grüezi Walter

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.

Werner News

unread,
May 3, 2004, 4:58:01 AM5/3/04
to
Hallo Walter,

Quersumme gibt übrigens auch ohne VBA.
http://michael-schwimmer.de/faq.htm#quersumme

Werner

0 new messages