Teilen von Zahlenkolonnen
#1
Hallo!

Ich habe ein Problem, was ich nicht lösen kann.
Ich habe Zahlenkolonnen, die von 4 bis 8 Ziffern lang sind. Nun müssen diese Zahlen VON HINTEN immer in zweier-Pärchen geteilt werden. So sollte das aussehen:
1234 --> 12 34
12345 --> 1 23 45
123456 --> 12 34 56
1234567 --> 1 23 45 67
12345678 --> 12 34 56 78

Gibt es da eine Formatierung, die ich nicht kenne, die das alles schnell löst?

Besten Dank für Antworten!
Top
#2
Hallo,

zumindest in xl2016 gibt es im Menü "Daten" die Möglichkeit der "Blitzvorschau". Einfach gesagt, man fügt in 3-4 Zellen die gewünschte Formatierung per Hand ein, xl "versteht" es und wendet es auf alle Zeilen an.

mfg
Top
#3
leider gibt es kein muster in der Spalte, die Blitzvorschau findet in dieser Spalte kein Muster.
Ich bräuchte deshalb entweder eine Formatierung oder ein VBA
Top
#4
Hallo,

hilft dir das folgende benutzerdefinierte Format?

Code:
## ## ## ## ## ##
Gruß
Peter
Top
#5
Hallo

meinst du sowas ...???

mfg  Gast 123

Code:
Sub Zahlenblock_zerlegen()
Dim AC As Range, lz As Long
Dim Wert As Variant, Neuwert As Variant
   Sheets("Tabelle1").Select
   lz = Range("A2").End(xlDown).Row
   
'Schleife für alle Werte auflisten
For Each AC In Range("A2:A" & lz)
   Wert = Trim(AC):  Neuwert = Empty
   'gerade/ungerade auswerten
   If Wert Mod 2 = 1 Then
      Neuwert = Left(Wert, 1)
      Wert = Right(Wert, Len(Wert) - 1)
   End If
   
   'Schleife für String zu zerlegen
   For j = 1 To 10
      Neuwert = Neuwert & " " & Left(Wert, 2)
      If Len(Wert) = 2 Then Exit For
      Wert = Mid(Wert, 3, 20)
   Next j

   'neuen Wert auflisten
   AC.Cells(1, 2) = Trim(Neuwert)
Next AC
End Sub
Top
#6
Hi Gast123,

1. Variablendeklaration schlecht!
2 lz ergibt die letzte Zeile der Tabelle 1048576 und läuft bei leeren Zellen dann in einen Fehler.


Code:
Sub zerlegen()
Dim lz As Long
Dim Wert As String
Dim Wert2 As String
Dim loA As Long
Dim loCo As Long
lz = Cells(Rows.Count, 1).End(xlUp).Row
For loCo = 1 To lz
Wert = Trim(Str(Cells(loCo, 1)))
If Len(Wert) Mod 2 = 1 Then Wert = " " & Wert
    For loA = 1 To Len(Wert) - 1 Step 2
        Wert2 = Wert2 & Mid(Wert, loA, 2) & " "
    Next
    Cells(loCo, 1) = Trim(Wert2)
    Wert2 = ""
Next
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#7
Moin Leute,

der Letzte Code funktioniert soweit ganz gut, aber leider nicht, wenn eine Zeile leer ist. Gäbe es da noch eine Idee?

Danke schonmal an alle Antworten!
Top
#8
Warum funktioniert denn Peter sein Vorschlag nicht bei dir.
Ich habe den Vorschlag benutzt um die Telefonnummern übersichtlicher darzustellen. Es funktioniert und ist ohne Aufwand umzusetzen.
017212345678  = 01 72 12 34 56 78
Top
#9
Hi,



Code:
Sub zerlegen()
Dim lz As Long
Dim Wert As String
Dim Wert2 As String
Dim loA As Long
Dim loCo As Long
lz = Cells(Rows.Count, 1).End(xlUp).Row
For loCo = 1 To lz
if cells(loco,1)<>"" then
Wert = Trim(Str(Cells(loCo, 1)))
If Len(Wert) Mod 2 = 1 Then Wert = " " & Wert
    For loA = 1 To Len(Wert) - 1 Step 2
        Wert2 = Wert2 & Mid(Wert, loA, 2) & " "
    Next
    Cells(loCo, 1) = Trim(Wert2)
    Wert2 = ""
Next
next
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste