Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Umwandlung dezimal in Alphanumerisch
24.08.2004 07:26:44
Jochen
Hallo zusammen,
ich habe folgendes Problem, ich habe eine Stapelverarbeitung von Dateien (Meßwerte) geschrieben. Bislang hatten die Dateien eine fortlaufende Nummer, doch nun ist der Zähler Alphanumerisch. Soll heißen, daß meine Dateien nicht von "0" bis "150" nummeriert sind, sondern von "0" - "9" und dann weiter von "a" - "z". Danach geht es weiter mit "10" - "19", dann "1a" - "1z" usw ...
Kann mir jemand helfen, wie ich mein Skript (s.u.) entsprechend anpassen kann?
For e = 1 To 150
If e &lt 10 Then Dateiname = "Testdaten" + "000" + e + ".xls"
If e &gt= 10 Then Dateiname = "Testdaten" + "00" + e + ".xls"
If e &gt= 100 Then Dateiname = "Testdaten" + "0" + e + ".xls"
If e &gt= 1000 Then Dateiname = "Testdaten" + e + ".xls"
Danke und Gruß
Jochen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umwandlung dezimal in Alphanumerisch
24.08.2004 08:18:13
Harald
Hallo Jörg,
Du machst im Prinzip eine Umwandlung aus dem Dezimalsystem in ein System auf der Basis 36 (0-9 + 26 Zeichen des Alphabets):
Sub test()
Dim basis As Integer
Dim rest As Integer
Dim x As Integer, y As Integer
Dim ergebnis As String
basis = 10 + (Asc("z") - Asc("a") + 1)
ergebnis = ""
x = InputBox(">")
y = x
Do
rest = x Mod basis
ergebnis = zeichen(rest) & ergebnis
x = x \ basis
Loop Until x = 0
Do While Len(ergebnis) ergebnis = "0" & ergebnis
Loop
MsgBox y & " -> " & ergebnis
End Sub

Private Function zeichen(x As Integer) As String
If x < 10 Then
zeichen = Chr(Asc("0") + x)
Else
zeichen = Chr(Asc("a") + x - 10)
End If
End Function

Gruß Harald
Anzeige
AW: Umwandlung dezimal in Alphanumerisch
JRobert
Hallo Jochen,
noch ein paar Functionen,die auf Basis von Harald aufgebaut sind:
Public Function Decode10to36(zahlstring As String) As String
Dim Zahl As Long, tmpstr As String
Dim rest As Integer
tmpstr = ""
Zahl = CLng(zahlstring)
basis = 10 + (Asc("z") - Asc("a") + 1)
Do Until Zahl = 0
rest = Zahl Mod basis
tmpstr = zeichen(rest) + tmpstr
Zahl = (Zahl - rest) / basis
Loop
Decode10to36 = tmpstr
End Function
'----------------------------------
Public Function Decode36to10(zahlstring As String) As String
Dim lenstr As Integer
Dim Zahl As Long
lenstr = Len(zahlstring)
basis = 10 + (Asc("z") - Asc("a") + 1)
Zahl = 0
For i = 1 To lenstr
tmpchar = Mid(zahlstring, lenstr - i + 1, 1)
If Not IsNumeric(tmpchar) Then
Zahl = Zahl + CLng(10 + (Asc(tmpchar) - Asc("a"))) * basis ^ (i - 1)
Else: Zahl = Zahl + CLng(tmpchar) * basis ^ (i - 1)
End If
Next i
Decode36to10 = Str(Zahl)
End Function

Private Function zeichen(x As Integer) As String
If x < 10 Then
zeichen = Chr(Asc("0") + x)
Else
zeichen = Chr(Asc("a") + x - 10)
End If
End Function

'------------------------------------------
'gibt nächte Zahl in 36_Basis
Public Function GetNext36Zahl(ZahlIn36Basis As String)
Dim Zahl10 As Long
GetNext36Zahl = Decode10to36(Str(CLng(Decode36to10(ZahlIn36Basis)) + 1))
End Function
grüß Robert
Anzeige

275 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige