Excel - alles ersetzen
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.
Antwort schreiben
Antwort 1 von rainberg vom 22.10.2022, 19:45 Options
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
Antwort 2 von LouZipher vom 23.10.2022, 00:39 Options
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 ... ;)
Antwort 3 von Marie vom 23.10.2022, 01:14 Options
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
Antwort 4 von Marie vom 23.10.2022, 02:34 Options
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
Antwort 5 von KJG17 vom 23.10.2022, 08:29 OptionsLösung
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
Antwort 6 von LouZipher vom 23.10.2022, 13:59 Options
Vielen Dank an alle, A5 hat es getroffen. :)
Den Menuepunktteil mit Standard und Text hatte ich glatt übersehen.