Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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
Inhaltsverzeichnis

Zeichen in arabisch-indischer Druckschri

Zeichen in arabisch-indischer Druckschri
04.12.2020 12:05:46
reiner
Hallo Leute,
Excel bietet die Möglichkeit „arabische“ Ziffernfolgen in „römische“ Ziffernfolgen zu konvertie-ren:
Public Function fktRoman(ByVal Arab As Long) As String
Dim Arabisch As Variant, Roemisch As Variant, Roem As String, i As Long
Arabisch = Array(1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000)
Roemisch = Array("I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M")
For i = UBound(Arabisch) To LBound(Arabisch) Step -1
Do While Arab >= Arabisch(i)
Arab = Arab - Arabisch(i)
Roem = Roem + Roemisch(i)
Loop
Next i
fktRoman = Roem
End Function
Ich suche eine Möglichkeit „unsere arabischen“ Ziffernfolgen in „indo-arabische“ Ziffernfolgen (und zurück) zu konvertieren.
https://de.wikipedia.org/wiki/Unicodeblock_Arabisch
Beispiel: Alt+u+1635 = ٣
In „WORD“ lassen sich die Ziffernkonvertieren, es ist mir bisher aber nicht gelungen mit z.B.: Alt+u+1635 = ٣ die Zeichen in den VBA-Editor zu schreiben. Meine Vorstellung war, die indo-arabischen Ziffern ähnlich wie die römischen Ziffern (sh.o.) in den Programmcode zu schreiben.
Kennt jemand eine andere Möglichkeit die Vorstellung zu realisieren?
mfg
reiner

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ChrW(unicode)
04.12.2020 13:03:24
Fennek
Hallo,
mit einer eher vagen Interpretation:
Im VBA-Code kann man mit ChrW() Unicode-Zeichen eingeben und mit AscW() auslesen.
mfg
AW: ChrW(unicode)
04.12.2020 15:19:16
reiner
hallo Fennek,
das ist schon ein sehr guter Ansatz, sh. Beispieldatei; danke dafür
https://www.herber.de/bbs/user/142074.xlsb
Das kleine Makro generiert in Spalte "C" die Ziffern 0 -9 in indo-arabischer Schreibweise und die Jahreszahl 2020 in indo-arabischer und danach in "unserer" Schreibweise in die TextBox der UF.
Der Versuch zur Rückwandlung der Zeichen in Spalte "C" in unsere Schreibweise klappte noch nicht, Spalte"E"
Hast du -oder ein anderer Teilnehmer- dieses Forums einen Vorschlag zur Rückwandlung?
reiner
Anzeige
AW: Meine Beispieldatei
04.12.2020 15:35:54
Fennek
Hallo,
nach etwas Lernen über malware lehne ich sowohl xlsb als auch Forms aus unbekannten Quellen ab.
Ich habe deinen Code mit Python extrahiert und in ein neues, leeres Workbook kopiert. M.E. geht das in Zellen recht gut, eine Zuodnung der Unicode-Zeichen zu Zahlen sollte machbar sein.
mfg
https://www.herber.de/bbs/user/142075.xlsm
AW: Meine Beispieldatei
04.12.2020 15:50:44
reiner
"...M.E. geht das in Zellen recht gut, eine Zuodnung der Unicode-Zeichen zu Zahlen sollte machbar sein..."
Genau das ist die Frage.
Range("E1").Value = AscW(Range("C1").Value) 'ASSCI-Dezimal "48" Dez. "0"
Range("E2").Value = AscW(Range("C2").Value) 'ASSCI-Dezimal "49" Dez. "1"
Range("E3").Value = AscW(Range("C3").Value) 'ASSCI-Dezimal "50" Dez. "2"
Range("E4").Value = AscW(Range("C4").Value) 'ASSCI-Dezimal "51" Dez. "3"
Range("E5").Value = AscW(Range("C5").Value) 'ASSCI-Dezimal "52" Dez. "4"
Range("E6").Value = AscW(Range("C6").Value) 'ASSCI-Dezimal "53" Dez. "5"
Range("E7").Value = AscW(Range("C7").Value) 'ASSCI-Dezimal "54" Dez. "6"
Range("E8").Value = AscW(Range("C8").Value) 'ASSCI-Dezimal "55" Dez. "7"
Range("E9").Value = AscW(Range("C9").Value) 'ASSCI-Dezimal "56" Dez. "8"
Range("E10").Value = AscW(Range("C10").Value) 'ASSCI-Dezimal "57" Dez. "9"
ich habe noch ein wenig experimentiert und herausgefunden dass die Rückwandlung zu ASSCI-Dezimalzahlen zwischen 48 und 57 führt, entsprechend 0 - 9
Jetzt stellt sich noch die Frage wie wandle ich z.B. ASSCI-Dezimal 48 in Dezimal 0 um?
Anzeige
AW: Val(chr(48)) = 0
04.12.2020 16:04:01
Fennek
Mit der VBA.Val() oder mit *1 bzw +0 kann man den Buchstaben "0" in die Zahl 0 wandeln.
Falld Du rechnen möchtest, nutze ein Array mit den Indo-Unicodes und dem Index der Zahl.

Indo = Array(1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641)

AW: Val(chr(48)) = 0
04.12.2020 16:07:53
reiner
danke,
damit ist die Frage beantwortet

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige