Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

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