Registriert seit: 06.09.2017
Version(en): 2016
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!
Registriert seit: 06.12.2015
Version(en): 2016
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
Registriert seit: 06.09.2017
Version(en): 2016
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
Registriert seit: 12.04.2014
Version(en): Office 365
Hallo,
hilft dir das folgende benutzerdefinierte Format?
Gruß
Peter
Registriert seit: 12.03.2016
Version(en): Excel 2003
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
Registriert seit: 13.04.2014
Version(en): 365
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.
Registriert seit: 06.09.2017
Version(en): 2016
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!
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
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
Registriert seit: 13.04.2014
Version(en): 365
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.