killtec
Goto Top

Excel Feld mit Zahlen formaiteren

Hallo,
ich möchte in Excel eine Zahl formatieren.
Es soll nach dem Muster sein:

1-12345-12345-123456789-1

Wie bekomme ich denn diese Art der Formatierung in der Zelle hin?

Danke.

Gruß

Content-Key: 293677

Url: https://administrator.de/contentid/293677

Printed on: April 18, 2024 at 00:04 o'clock

Mitglied: 122990
122990 Jan 20, 2016 updated at 13:39:08 (UTC)
Goto Top
Zelle(n) markieren STRG+1 drücken > Benutzerdefiniert > Eingeben:
0"-"00000"-"00000"-"000000000"-"0
Gruß grexit
Member: killtec
killtec Jan 20, 2016 at 13:18:26 (UTC)
Goto Top
Hi @122990,
das funktioniert schon mal, hab es mit # versucht face-sad
Jetzt habe ich nur noch einen Bug, da es eine Zahl ist, schreibt excel was falsches hin... face-sad
Ab dem 4. Block setzt er ab der 5. Stelle alles auf 0 face-sad
bsp.:
Soll:
1-12345-12345-12345678-1 wird dann zu:
1-12345-12345-12340000-0

Hast du hier noch eine Idee? Wenn ich es als text eingebe bleibt es richtig.

Gruß
Mitglied: 122990
122990 Jan 20, 2016 updated at 13:41:59 (UTC)
Goto Top
Ab dem 4. Block setzt er ab der 5. Stelle alles auf 0
Liest du hier:
Last digits are changed to zeroes when you type long numbers in cells of Excel
Member: killtec
killtec Jan 20, 2016 at 13:51:52 (UTC)
Goto Top
Hi,
ok, dachte mir das fast mit dem Textformat... Dann kann ich aber nicht automatisch die Bindestriche an den Stellen schreiben, oder?
Hab zumindest noch nicht raus bekommen wie das klappen soll.

Gruß
Mitglied: 122990
Solution 122990 Jan 20, 2016 updated at 14:28:19 (UTC)
Goto Top
Z.B. mit einem Formel-Makro:
Public Function FormatText(str As String)
    If Len(str) = 21 Then
        FormatText = Mid(str, 1, 1) & "-" & Mid(str, 2, 5) & "-" & Mid(str, 7, 5) & "-" & Mid(str, 12, 9) & "-" & Right(str, 1)  
    Else
        FormatText = Nothing
    End If
End Function
EIngabe erfolgt dann z.B. als Text ohne Bindestriche in Zelle A1 und in B1 steht dann als Formel:
=FormatText(A1)

-edit- Nachtrag

Oder automatisch in der selben Zelle ginge das auch mit einem Event-Makro im jeweiligen Sheet auf dem die Daten liegen:
Im Beispiel werden die Zellen A1:A20 auf Änderung überwacht und nach Eingabe die Zahl formatiert (Zellen bitte als Text formatieren)
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
    If Not Application.Intersect(Range("A1:A20"), Target) Is Nothing Then  
        strValue = Target.Cells(1).Value
        If Len(strValue) = 21 Then
            Target.Cells(1).Value = Mid(strValue, 1, 1) & "-" & Mid(strValue, 2, 5) & "-" & Mid(strValue, 7, 5) & "-" & Mid(strValue, 12, 9) & "-" & Right(strValue, 1)  
        Else
            'Target.Cells(1).Value = ""  
        End If
    End If
End Sub
Member: killtec
killtec Jan 20, 2016 at 14:28:13 (UTC)
Goto Top
Hi,
Danke, so funktioniert das -> Das Automatische. habe das noch angepasst auf zwei Spalten, ist ja kein Problem face-smile

Danke dir!

Gruß