2.8k Aufrufe
Gefragt in Tabellenkalkulation von Experte (1.9k Punkte)
Excel hat mich heute wieder mal fast in den Wahnsinn getrieben.

Ich habe eine Menge Tabellen zu verändern, in denen in der ersten Spalte Zahlen stehen nach folgendem Muster:
1-1 - 06 - (nach dem letzten - ist noch ein Leerzeichen)

Das sollte erst aufgeteilt werden in 1-1 und in die nächste Spalte frei-frei und dann 06 und dann der Rest; Sinn sollte es sein, 1-1 und 06 zu separieren.
Aber egal, ob ich es mit "Daten - Text in Spalten mache" oder manuell trenne und am Ende "Ersetzen - Alles ersetzen" mache - immer wieder wandelt mir Excel die 1-1 Anteile in Datumsanzeigen 01. Januar etc. um. Da kann ich das F ormat der Zellen einstellen auf Text, so oft ich will, das interessiert das MS-Produkt nicht. Man solte doch meinen, wenn ich 1-1 als TEXT habe, daß Excel mal so schlau ist, das NICHT umzuwandeln, aber nein.

Wie bringe ich Excel nun dazu, das Format so zu lassen, wie es ist ?

Thx.

6 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

wie wär's damit?

=LINKS(A1;3) extrahiert den Teilwert 1-1

=TEIL(A1;FINDEN(" - ";A1)+3;2) extrahiert den Teilwert 06

Gruss
Rainer
0 Punkte
Beantwortet von Experte (1.9k Punkte)
Das wäre natürlich eine Möglichkeit, thx, aber ich hatte gehofft, daß irgendwie über die Excelfunktionen machen zu können, und nicht per Formel, denn so muß ich doch wieder erst alles in extra Zellen schreiben, kopieren usw etc pp ... sicher, immmer noch schneller als einzeln per Hand ... aber ... ;)
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Hallo Lou,

entweder Du formatierst die Zelle vor dem Eintrag als Text, oder Du stellst ein Hochkomma voran. Das Hochkomma verhindert die Umwandlung, ist aber nicht sichtbar.

Wenn Du mir noch sagst, ob ich alles richtig verstanden habe, dann kann ich Dir den Code schicken, dass Du das automatisch teilst.

1) in welche Spalte sollen welche Teile eingetragen werden?
2) Sind das immer 3 zeichen, leer-leer in die nächste Spalte, zwei Zeichen in die nächste Spalte und wieder leer-leer in die letzte Spalte?
3) Wenn ja, kann man das leer-leer nicht wegwerfen?

Gruß Marie
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Hier, kopiere den Code als Code von Tabelle 1 oder ändere unten entsprechend Sheets("Tabelle1"). Falls es nicht das ist was Du wolltest, dann melde Dich nochmal.

Nochmal gruß marie

Option Explicit

Sub Splitten()
Dim strText As String
Dim strLinksText As String
Dim strRechtsText As String
Dim intPos As Integer
Dim intI As Integer

' 1-1 - 06 -
' Ich gehe davon aus Du willst nur links die Zeichen bis zu dem ersten Leerzeichen in Spalte B
' und dann die Zeichen vom zweiten bis zum dritten leerzeichen in Spalte C und sonst nichts?

For intI = 1 To Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
strText = Cells(intI, 1).Value ' Inhalt von Zelle in Spalte A
strText = Trim$(strText) ' führende und nachgestellte Leerzeichen entfernen
intPos = InStr(strText, " ")
strLinksText = Left$(strText, intPos - 1) 'Alle Zeichen bis zu dem ersten Leerzeichen auslesen
Cells(intI, 2).Value = strLinksText ' In Zelle B eintragen
strRechtsText = Mid$(strText, intPos + 3, Len(strText) - intPos - 4)
Cells(intI, 3).Value = strRechtsText
Next intI
End Sub
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Moin Lou,

wenn du "Daten - Text in Spalten" benutzt kannst du in Schritt 3 des Konvertierungsassistenten für die 4 Spalten das automatisch verwendete Format 'Standard' auf 'Text' umstellen. Mache das und die Sache mit der Anzeige als Datum hat sich erledigt.

Gruß
Kalle
0 Punkte
Beantwortet von Experte (1.9k Punkte)
Vielen Dank an alle, A5 hat es getroffen. :)

Den Menuepunktteil mit Standard und Text hatte ich glatt übersehen.
...