Supportnet / Forum / Tabellenkalkulation
Excel - Sonderzeichen löschen
Frage
Hallo :)
Icn möchte bei einer Excel-Tabelle alle Zellen von Sonderzeichen befreien.
Im Netz habe ich eine Anleitung gefunden:
=SÄUBERN(A1)
Was muss ich eingeben, dass diese Funktion nicht nur Zelle A1, sondern gleich alle Zellen korrigiert und noch -anstelle des Sonderzeichens- ein Komma mit Leerzeichen einfügt?
Danke!
Antwort 1 von Saarbauer
Hallo,
wird so wie du es dir vorgestellt hast nicht funktionieren.
Sonderzeichen sind u.U auch druckbare Zeichen.
Ich würde mit der Funktion "Ersetzen" arbeiten.
Da du bei dem Sonderzeichen nicht unbedingt weisst welches Zeichen gemeint ist, da nur ein Rechteck dargestellt wird, würde ich das Zeichen makieren und mit "STRG"+"c" kopieren. Anschleissend bei "Ersetzen""Suchen nach" mit "STRG"+"v" das zeichen eingeben und bei "Ersetzen durch" Komma mit Leerzeichen einfügen.
Gruß
Helmut
wird so wie du es dir vorgestellt hast nicht funktionieren.
Zitat:
=SÄUBERN(A1)
löscht alle nicht druckbaren Zeichen aus dem Text der Zelle A1=SÄUBERN(A1)
Sonderzeichen sind u.U auch druckbare Zeichen.
Ich würde mit der Funktion "Ersetzen" arbeiten.
Da du bei dem Sonderzeichen nicht unbedingt weisst welches Zeichen gemeint ist, da nur ein Rechteck dargestellt wird, würde ich das Zeichen makieren und mit "STRG"+"c" kopieren. Anschleissend bei "Ersetzen""Suchen nach" mit "STRG"+"v" das zeichen eingeben und bei "Ersetzen durch" Komma mit Leerzeichen einfügen.
Gruß
Helmut
Antwort 2 von hugo9
Hallo Helmut
Leider erkennt die Ersetzen-Funktion die Sonderzeichen (Kästchen) nicht.
Es wäre zu einfach ;)
Leider erkennt die Ersetzen-Funktion die Sonderzeichen (Kästchen) nicht.
Es wäre zu einfach ;)
Antwort 3 von Saarbauer
Hallo,
du musst die Sonderzeichen reinkopieren.
habe ich schon öfters gemacht, hat bei mir bisher immer funktioniert.
Gruß
Helmut
du musst die Sonderzeichen reinkopieren.
habe ich schon öfters gemacht, hat bei mir bisher immer funktioniert.
Zitat:
Zeichen makieren und mit "STRG"+"c" kopieren. Anschliessend bei "Ersetzen""Suchen nach" mit "STRG"+"v" das Zeichen eingeben und bei "Ersetzen durch" Komma mit Leerzeichen einfügen
Zeichen makieren und mit "STRG"+"c" kopieren. Anschliessend bei "Ersetzen""Suchen nach" mit "STRG"+"v" das Zeichen eingeben und bei "Ersetzen durch" Komma mit Leerzeichen einfügen
Gruß
Helmut
Antwort 4 von hugo9
Ne, geht nicht.
Vielleicht liegt´s auch an der Version, Excel 2000
Vielen Dank trotzdem! :)
Vielleicht liegt´s auch an der Version, Excel 2000
Vielen Dank trotzdem! :)
Antwort 5 von nighty
hi all :)
ist auch einfach :)
gruss nighty
automatisches abtasten von zeilen/spaltenende,bei bedarf durch bereichsangaben ersetzen
anstatt des x dein zeichen kopieren und dort einfuegen oder asci auslesen
Sub suchen()
Dim zaehler0 As Long
Dim zaehler1 As Integer
Dim zaehler3 As Integer
For zaehler0 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
For zaehler1 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
For zaehler3 = 1 To Len(Cells(zaehler0, zaehler1))
If Mid(Cells(zaehler0, zaehler1), zaehler3, 1) = "x" Then
If Mid(Cells(zaehler0, zaehler1), zaehler3, 1) = "x" And zaehler3 = 1 Then
rem hier dein komma mit leerzeichen
Cells(zaehler0, zaehler1) = ", " & Mid(Cells(zaehler0, zaehler1), 2, Len(Cells(zaehler0, zaehler1)) - zaehler3)
Exit For
Else
rem hier dein komma mit leerzeichen
Cells(zaehler0, zaehler1) = Mid(Cells(zaehler0, zaehler1), 1, zaehler3 - 1) & ", " & Mid(Cells(zaehler0, zaehler1), zaehler3 + 1, Len(Cells(zaehler0, zaehler1)))
Exit For
End If
End If
Next zaehler3
Next zaehler1
Next zaehler0
End Sub
ist auch einfach :)
gruss nighty
automatisches abtasten von zeilen/spaltenende,bei bedarf durch bereichsangaben ersetzen
anstatt des x dein zeichen kopieren und dort einfuegen oder asci auslesen
Sub suchen()
Dim zaehler0 As Long
Dim zaehler1 As Integer
Dim zaehler3 As Integer
For zaehler0 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
For zaehler1 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
For zaehler3 = 1 To Len(Cells(zaehler0, zaehler1))
If Mid(Cells(zaehler0, zaehler1), zaehler3, 1) = "x" Then
If Mid(Cells(zaehler0, zaehler1), zaehler3, 1) = "x" And zaehler3 = 1 Then
rem hier dein komma mit leerzeichen
Cells(zaehler0, zaehler1) = ", " & Mid(Cells(zaehler0, zaehler1), 2, Len(Cells(zaehler0, zaehler1)) - zaehler3)
Exit For
Else
rem hier dein komma mit leerzeichen
Cells(zaehler0, zaehler1) = Mid(Cells(zaehler0, zaehler1), 1, zaehler3 - 1) & ", " & Mid(Cells(zaehler0, zaehler1), zaehler3 + 1, Len(Cells(zaehler0, zaehler1)))
Exit For
End If
End If
Next zaehler3
Next zaehler1
Next zaehler0
End Sub
Antwort 6 von hugo9
Danke nighty, aber für mich wird der Bahnhof nur noch grösser.
Antwort 7 von nighty
hi hugo :)
teste bei einer vorher gemachten kopie der datei
1) alt/f11 oeffnet den vbeditor
2) dort einfuegen/modul anwaehlen
3) dort den code reinkopieren
jetzt muesste dein sonderzeichen gegen das x in dem code mit kopieren/einfuegen ausgetauscht werden
4) menue auswaehlen
auswaehlen/subuser/form ausfuehren
tataaa alle sonder zeichen weg und wurden gegen ein komme mit anschliessenden leerzeichen getauscht
gruss nighty
teste bei einer vorher gemachten kopie der datei
1) alt/f11 oeffnet den vbeditor
2) dort einfuegen/modul anwaehlen
3) dort den code reinkopieren
jetzt muesste dein sonderzeichen gegen das x in dem code mit kopieren/einfuegen ausgetauscht werden
4) menue auswaehlen
auswaehlen/subuser/form ausfuehren
tataaa alle sonder zeichen weg und wurden gegen ein komme mit anschliessenden leerzeichen getauscht
gruss nighty
Antwort 8 von hugo9
Danke!
Aber ich weiss ja nicht um was für ein Zeichen es sich handelt, und Excel kann und will es nicht kopieren....
Ich mache es jetzt mit WordPad. Da geht´s, wenn auch mit Umwegen verbunden.
Aber ich weiss ja nicht um was für ein Zeichen es sich handelt, und Excel kann und will es nicht kopieren....
Ich mache es jetzt mit WordPad. Da geht´s, wenn auch mit Umwegen verbunden.
Antwort 9 von nighty
hi all :)
dann halt andersrum :))
gruss nighty
gestaltet den text ein wenig neu und liest nur zeichen ein von asci 33 bis 126 bzw.
!"#$%&´()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Sub suchen()
Dim zaehler0 As Long
Dim zaehler1 As Integer
Dim zaehler3 As Integer
For zaehler0 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
For zaehler1 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
For zaehler3 = 1 To Len(Cells(zaehler0, zaehler1))
If Asc(Mid(Cells(zaehler0, zaehler1), zaehler3, 1)) > 32 And Asc(Mid(Cells(zaehler0, zaehler1), zaehler3, 1)) < 127 Then
neu = neu & Chr$(Asc(Mid(Cells(zaehler0, zaehler1), zaehler3, 1)))
End If
If zaehler3 = Len(Cells(zaehler0, zaehler1)) Then
Cells(zaehler0, zaehler1) = neu
neu = ""
End If
Next zaehler3
Next zaehler1
Next zaehler0
End Sub
dann halt andersrum :))
gruss nighty
gestaltet den text ein wenig neu und liest nur zeichen ein von asci 33 bis 126 bzw.
!"#$%&´()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Sub suchen()
Dim zaehler0 As Long
Dim zaehler1 As Integer
Dim zaehler3 As Integer
For zaehler0 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
For zaehler1 = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
For zaehler3 = 1 To Len(Cells(zaehler0, zaehler1))
If Asc(Mid(Cells(zaehler0, zaehler1), zaehler3, 1)) > 32 And Asc(Mid(Cells(zaehler0, zaehler1), zaehler3, 1)) < 127 Then
neu = neu & Chr$(Asc(Mid(Cells(zaehler0, zaehler1), zaehler3, 1)))
End If
If zaehler3 = Len(Cells(zaehler0, zaehler1)) Then
Cells(zaehler0, zaehler1) = neu
neu = ""
End If
Next zaehler3
Next zaehler1
Next zaehler0
End Sub

