unsere Kunden bekommen jetzt Kundenkarten (leider sind die alle 16-stellig. Da kann man nicht dran rütteln)
Nun habe ich eine Tabelle erstellt, mit anmerkungen. Unter anderem vergebe ich natürlich auch die 16 stellige Kartennummer.
Als benutzerdefiniertes Format habe ich eingegeben:
#### #### #### ####
Zuerst ist mir garnicht aufgefallen das Excel die letzte Zahl ignoriert und eine 0 daraus macht. Nach recherche bei google hängt das ja damit zusammen, das Excel nur 15 Zahlen kennt.
Dann habe ich andere Formate ausprobiert, keines stellt mich zufrieden, weil ich die lücke nach 4 Zeichen nicht habe.
Meine Frage ist nun, kann man das mit VBA lösen? Der trick mit dem Hochkomma übrigens befriedigt mich auch nicht so richtig. Da funktioniert die Lücke auch nicht..
Eine 16stellige Zahl bleibt, egal, ob sie danach ungenau wird, eine Zahl. Daher musst Du sie tatsächlich als Text eingeben. Das kannst Du dann ohne Lücken tun und ein lückenherstellendes VBA-Ereignis verwenden.
16.02.2021, 13:14 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2021, 13:24 von Beltason.)
Danke dir für die schnelle Antwort. Format Text geht natürlich. Der besseren Übersicht hätte ich gerne das nach eingabe von Enter die 16 Zahlen eine Lücke bekommen. Das geht aber leider nur mit Benutzerdefiniert. Hallo Ralf,
wenn ich deine Formel "1234567890123456", "@@@@ @@@@ @@@@ @@@@" eingebe kommt als ausgabe nur massenweise das Raute Zeichen. Was mache ich falsch?
16.02.2021, 13:29 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2021, 13:30 von schauan.)
Hallöchen,
füge in das Codemodul der Tabelle diesen Code ein
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column = 4 And Target.Cells.Count = 1 Then If WorksheetFunction.IsNumber(Val(Target)) Then Target.Value = Format(Target.Text, "@@@@ @@@@ @@@@ @@@@") End If End If Application.EnableEvents = True End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Hallo Andre, danke für deinen Code. Ich bin wohl ein Voll-DAU, ich gebe deinen Code ins Modul ein, ändere Zellen Formatieren auf Zahl, gebe die testzahl 1234123412341231 ein und es Passiert nichts. Weder Lücke und letzte Zahl wird wieder eine 0
16.02.2021, 14:01 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2021, 14:09 von LCohen.)
Weder Du noch Schauan haben meine #5 gelesen.
Das lästige manuelle Text-Wandeln kann unterbleiben, wenn Du nur die ersten 15 Ziffern eingibst. Die 16. wird dann als Prüfziffer errechnet. Mit deren Vergleich siehst Du dann, dass Du richtig eingegeben hast.
Das Ereignis dann also ... 1. wandelt in Text, 2. ermittelt (vorher) und hängt (an den Text) die Prüfziffer an, und 3. fügt die textlichen Leerzeichen ein (siehe RPP63 oder schauan).