Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Eine Zahl auseinander nehmen
#1
Hallo Zusammen.

Ich möchte folgendes Problem lösen:
Meine Zahl ist 16stellig. z.B. 1234567890123456
Jetzt soll diese Zahl so aussehen: 12:34:56:78:90:12:34:56

Das funktioniert auch gut mit dieser Formel:
=VERKETTEN(LINKS(A1;2);":";(TEIL(A1;3;2));":";TEIL(A1;5;2);":";TEIL(A1;7;2);":";TEIL(A1;9;2);":";TEIL(A1;11;2);":";TEIL(A1;13;2);":";RECHTS(A1;2))

Geht aber nur wenn die Ausgangszahl in A1 steht.

Gibt es eine Möglichkeit diese Formel in ein Makro zu stecken, damit sie jede aktive Zelle umwandelt?
Das Ziel ist dabei ich kopiere die Ausgangszahl in irgendeine Zelle, starte ein Makro mittels Tastenkombination und in der Zelle erscheint die Zahl mit Doppelpunkten.

Gibt es dafür eine Lösung. Ich bin für jede Hilfe dankbar.

Mit lieben Grüßen aus dem Schwabenland
hziemer
Zitieren
#2
Hallo HZiemer,

mit folgendem kleinem Makro:

Sub TextZahlBearbeiten()
Dim Zelle As Range
Dim Aus As String
Dim i As Long
    For Each Zelle In Application.Selection
        If Len(Zelle.Text) = 16 Then
            Aus = ""
            For i = 1 To Len(Zelle.Text)
                Aus = Aus & Mid(Zelle.Text, i, 1)
                If i Mod 2 = 0 Then Aus = Aus & ":"
            Next i
            If Right(Aus, 1) = ":" Then Aus = Left(Aus, Len(Aus) - 1)
            Zelle.Value = Aus
        End If
    Next Zelle
End Sub


Gruß
Sigi
Zitieren
#3
Hi,

alternativ ein wenig kürzer wie folgt:

Code:
Sub Zahl_Neu()

Dim wert1 As String

wert1 = ThisWorkbook.Sheets(1).Range("A1").Text

For a = 1 To 16 Step 2
  wert2 = wert2 & Mid(wert1, a, 2) & ":"
Next a
wert2 = Left(wert2, 23)

End Sub

LG Loisl
Weitere Informationen, Tipps, Tricks sowie Support-Unterstützung findest du auf unserer Webseite Excel-Inside.de
Zitieren

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen besprechen. Gerne erstellen wir auf dieser Basis kostenlos und unverbindlich ein Angebot.
Anfrage per Online-Formular oder per E-Mail an anfrage@excel-inside.de.

#4
Moin!
Warum nicht einfach (hier: Direktfenster):
PHP-Code:
?Format("1234567890123456","@@:@@:@@:@@:@@:@@:@@:@@")
12:34:56:78:90:12:34:56 

Gruß Ralf

Hier mal als Automatismus für Spalte A
Vorbereitung:
Zahlenformat: Text
Datengültigkeit: Länge von 16 bis 16 Stellen

[Bild: UJnZcPx.png]

PHP-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
  
If .Column 1 Then
    Application
.EnableEvents False
    
.Value Format(.Value"@@:@@:@@:@@:@@:@@:@@:@@")
    Application.EnableEvents True
  End 
If
End With
End Sub 


Ergibt automatisch:

[Bild: cyBrtv2.png]

Ich habe die Übungsdatei mal angehangen.

Gruß Ralf


Angehängte Dateien
.xlsm   Formatierung Textzahl.xlsm (Größe: 13,8 KB / Downloads: 0)
Zitieren
#5
Hallo Zusammen

Danke an alle.
Die vorgeschlagenen Lösungen funktionieren alle.
Ich habe jetzt die Lösung von Sigi.21 eingebaut.

Nochmals Danke an Euch.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Hinweis auf Angebot Excel-Inside - lang

   Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein völlig kostenloses und unverbindliches Angebot innerhalb weniger Stunden.
   Anfrage direkt per Online-Formular
oder per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions