Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
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

Zahlen mit Bindestriche versehen

Zahlen mit Bindestriche versehen
15.05.2019 14:47:36
Lilli
Hallo Ihr lieben,
ich bräuchte bitte Hilfe beim Formatieren von Telekom-Kartennummer.
ich habe folgendes Code im Netz gefunden:
Sub Kartennummer()
Dim a, b, c, d
a = Left(ActiveCell.Value, 1)
b = Mid(ActiveCell.Value, 2, 5)
c = Mid(ActiveCell.Value, 7, 5)
d = Mid(ActiveCell.Value, 12, 8)
e = Right(ActiveCell.Value, 1)
ActiveCell.Value = (a & "-" & b & "-" & c & "-" & d & "-" & e)
End Sub

Ich möchte aber, dass nach jeder Eingabe in den Zellen C2:E150 automatisch mit den Bindestrichen versehen wird. Hier muss ich über jede einzelne Zelle gehen und anklicken.
Das Makro habe ich jetzt in einem Modul eingefügt. Kann es da bleiben oder muss ich: Tab - Code Anzeigen und dann dort einfügen ;)
Vielen Dank für die Mühe und Feedback im Voraus.
Liebe Grüße, Lilli :)

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen mit Bindestriche versehen
15.05.2019 14:51:10
Lilli
Ein Makro wäre natürlich klasse. Mich aber auch interessieren, ob es mit der Zellenformatierung dies auch möglich ist.
Vielen Dank,
Lilli
AW: Zahlen mit Bindestriche versehen
15.05.2019 14:51:47
EtoPHG
Hallo Lilli,
Dazu brauchst du keinen VBA Code.
Zellenformat - Benutzerdefiniert:
0-00000-00000-00000000-0

Gruess Hansueli
AW: Zahlen mit Bindestriche versehen
15.05.2019 15:34:42
Daniel
im Prinzip ja, aber nur mit maximal 15 Stellen.
wenn es mehr sind, müssen die Werte Text bleiben, weil dir Excel sonst die letzten Stellen auf 0 setzt, und damit funktioniert dann das benutzerdefinierte Zahlenformat nicht mehr.
Gruß Daniel
AW: Zahlen mit Bindestriche versehen
15.05.2019 15:38:57
Lilli
Hallo Daniel,
danke für die Erklärung, warum es nicht funktioniert.
Viele Grüße, Lilli :)
Anzeige
AW: Zahlen mit Bindestriche versehen
15.05.2019 16:54:30
mmat
Hallo Lilli,
das könnte deine Lösung sein:
Du packst den folgenden Code in die VBA-Codeseite des jeweiligen Arbeitsblatts.
Option Explicit
Function Kartennummer(s As String) As String
Dim a, b, c, d, e
a = Left(s, 1)
b = Mid(s, 2, 5)
c = Mid(s, 7, 5)
d = Mid(s, 12, 8)
e = Right(s, 1)
Kartennummer = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Intersect(Target, [C2:E150]) Is Nothing Then Exit Sub
If (Target.Cells.Count > 1) Then Exit Sub
s = Target
If InStr(s, "-") > 0 Then Exit Sub
If Len(s)  20 Then Exit Sub
Target.NumberFormat = "@"
Target.Value = Kartennummer(s)
End Sub
Weiterhin soll der Bereich C2:E150 vorher mit dem Zellformat "Text" formatiert werden (sicherheitshalber). Dann müsste das schon funktionieren.
Anzeige
AW: Zahlen mit Bindestriche versehen
15.05.2019 17:50:04
Lilli
Hallo mmat,
das funktioniert perfekt.
vielen lieben Dank für Deine Mühe.
das ist echt klasse. Hurra ;)
Ich danke Dir ganz herzlich.
Liebe Grüße, Lilli :)
gerne wieder
16.05.2019 13:24:24
mmat
man könnte die eingegebene Zahl so auch als ISBN formatieren ... :-)
AW: gerne wieder
16.05.2019 13:34:42
Lilli
Hallo mmat,
vielen Dank für den Hinweis.
Darf ich Fragen, wie man dein Code verändern müsste, wenn man drei Spalten nebeneinander mit unterschiedlichen Trennungen habe. Das heißt, in der erste Spalte habe ich diese SIM-Kartennummer, in der Zweiten Spalte habe ich die MAC-Adresse und in der Dritten eine interne Seriennummer.
welchen Teil muss man verändern:
Option Explicit
Function Kartennummer(s As String) As String
Dim a, b, c, d, e
a = Left(s, 1)
b = Mid(s, 2, 5)
c = Mid(s, 7, 5)
d = Mid(s, 12, 8)
e = Right(s, 1)
Kartennummer = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Intersect(Target, [C2:E150]) Is Nothing Then Exit Sub
If (Target.Cells.Count > 1) Then Exit Sub
s = Target
If InStr(s, "-") > 0 Then Exit Sub
If Len(s)  20 Then Exit Sub
Target.NumberFormat = "@"
Target.Value = Kartennummer(s)
End Sub

vielen Dank für Deine Mühe im Voraus.
liebe Grüße, Lilli :)
Anzeige
AW: gerne wieder
16.05.2019 14:03:14
mmat
Hallo Lilli,
ich habe keine Ahnung wie eine Sim-Nr oder Mac aussieht. Wie lange sind die und wo sitzen die Striche?
Die grundsätzliche Struktur des Programms ist wie folgt (davon ausgehend, das sich alles in Spalten c-e abspielt):
Option Explicit
Function Kartennummer(s As String) As String
Dim a, b, c, d, e
a = Left(s, 1)
b = Mid(s, 2, 5)
c = Mid(s, 7, 5)
d = Mid(s, 12, 8)
e = Right(s, 1)
Kartennummer = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function
Function SimNummer(s As String) As String
'Hier die Regeln für die Formatierung der Sim-Nummer einfügen
End Function
Function MacNummer(s As String) As String
'Hier die Regeln für die Formatierung der MAC-Nummer einfügen
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String, n As String, c As Long
If Intersect(Target, [C2:E150]) Is Nothing Then Exit Sub
If (Target.Cells.Count > 1) Then Exit Sub
s = Target
If InStr(s, "-") > 0 Then Exit Sub
c = Target.Columns(1) 'hier wird geguckt, in welcher Spalte geändert wurde
If c = 3 Then 'Kartennummer
If Len(s)  20 Then Exit Sub
n = Kartennummer(s)
ElseIf c = 4 Then 'sim-Nr
n = SimNummer(s)
Else  ' c=5 hier steht die ISBN
n = MacNummer(s)
End If
Target.NumberFormat = "@"
Target.Value = n
End Sub
vg, MM
Anzeige
AW: gerne wieder
16.05.2019 14:03:24
mmat
Hallo Lilli,
ich habe keine Ahnung wie eine Sim-Nr oder Mac aussieht. Wie lange sind die und wo sitzen die Striche?
Die grundsätzliche Struktur des Programms ist wie folgt (davon ausgehend, das sich alles in Spalten c-e abspielt):
Option Explicit
Function Kartennummer(s As String) As String
Dim a, b, c, d, e
a = Left(s, 1)
b = Mid(s, 2, 5)
c = Mid(s, 7, 5)
d = Mid(s, 12, 8)
e = Right(s, 1)
Kartennummer = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function
Function SimNummer(s As String) As String
'Hier die Regeln für die Formatierung der Sim-Nummer einfügen
End Function
Function MacNummer(s As String) As String
'Hier die Regeln für die Formatierung der MAC-Nummer einfügen
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String, n As String, c As Long
If Intersect(Target, [C2:E150]) Is Nothing Then Exit Sub
If (Target.Cells.Count > 1) Then Exit Sub
s = Target
If InStr(s, "-") > 0 Then Exit Sub
c = Target.Columns(1) 'hier wird geguckt, in welcher Spalte geändert wurde
If c = 3 Then 'Kartennummer
If Len(s)  20 Then Exit Sub
n = Kartennummer(s)
ElseIf c = 4 Then 'sim-Nr
n = SimNummer(s)
Else  ' c=5 hier steht die ISBN
n = MacNummer(s)
End If
Target.NumberFormat = "@"
Target.Value = n
End Sub
vg, MM
Anzeige
AW: gerne wieder
17.05.2019 11:05:19
Lilli
Hallo mmat,
vielen lieben Dank für die Ergänzung. Ich probiere es nachher und gebe Dir auf jeden Fall Bescheid.
Vielen Dank für Deine Mühe.
Viele Grüße, Lilli :)
AW: Zahlen mit Bindestriche versehen
15.05.2019 15:38:04
Lilli
Hallo Hansueli,
vielen Dank für Deine Hilfe, aber funktioniert leider nicht.
Probier doch mal mit diese Zahl: 89490200001551016051
es kommt diese Zahl raus.
89490200001551000000
und so sollte aber erscheinen: 8-94902-00001-55101605-1
Ich habe keine Ahnung woran das liegt.
vielleicht ist doch ein Makro besser...
viele Grüße, Lilli

8 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige