Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: Hilfe zu einer kleinen VBA-Funktion





Frage

Hallo Leute, ich brauche Eure Hilfe für folgende kleine Funktion: 1) Ich habe eine vorgegebene Zeichenfolge als String (Konstante) [b]meinefolge [/b]= "0123456789ABCD.....Z" 2) Nach Eingabe einer Zahlen- und/oder Buchstaben-Kombination sollte eine Summe der jeweiligen Position des einzelnen Eingabezeichens in [b]meinefolge [/b] gebildet werden. Beispiele: Die Stellenzählung beginnt mit [b]0 (Null)[/b] Eingabe: 42 Ergebnis: 4 ist an der vierten Stelle, 2 ist an der zweiten also die summe 4+2=6 Eingabe: C6A Ergebnis: 12-te Stelle + 6-te Stelle + 2-te Stelle =20 Eingabe B04 Ergebnis: 11-te Stelle + Nullte Stelle + 4-te Stelle =15 Vielen Dank für Eure Hilfe, PL

Antwort 1 von grummelinchen

Hallo

kopiere nachstehenden Code in ein Modul:
Option Explicit

Function chksum(ByVal vstring As String, _
Optional meinefolge As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß")
Dim erg%, i%
For i = 1 To Len(vstring)
erg = erg + (InStr(1, meinefolge, UCase(Mid(vstring, i, 1)))) - 1
Next
chksum = erg
End Function


Mit dieser Funktion geht sowohl der Aufruf im Tabellenblatt mit =CHKSUM("B04") liefert 15, als auch in vba Debug.Print chksum("C6A") liefert dann allerdings 28 (nicht wie in Deinem 2. Beispiel vermutlich irrtümlicherweise mit 20 beziffert) zurück.

Alternativ kanns Du der Funktion auch noch ein 2.Argument übergeben, das dann meinefolge als Vorgabe ersetzt.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: