07.01.2017, 14:38
Hallo zusammen,
folgenden VBA-Code habe ich im Netz gefunden und für mich verwendet:
Quelle:
http://ms-excel.eu/vba/vba-textbehandlun...ernen.html
Sub Leerzeichen_entfernen()
Dim i As Integer
For i = 1 To 100
Cells(i, 1) = Application.WorksheetFunction.Substitute(Cells(i, 1), Chr(160), "")
'Das Leerzeichen ist kein Leerzeichen, sondern ein Code(160)
'Das merkt man auf den ersten Blick aber nicht. Hier wird
'der Code(160) gegen nichts ausgewechselt
Next
End Sub
Den Code konnte ich unkompliziert bei mir in einem Modul umsetzen. Mir ging es weiter noch darum, den Code beim Verlassen der aktiven Zelle bspw. durch die Enter-Taste ausführen zu lassen. Und hier war mein Problem, das ich nicht lösen konnte, da ich mich im VBA-Bereich überhaupt nicht bis sehr wenig auskenne.
Versuche nach dem trial and error Prinzip kamen dem, was ich wollte, schon recht nahe. Allerdings wurde das nachfolgende Makro ausgeführt, sobald irgendeine Zelle in dem Tabellenblatt angeklickt oder verlassen wurde.
Über Worksheet und SelectionChange
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
For i = 1 To 100
Cells(i, 1) = Application.WorksheetFunction.Substitute(Cells(i, 1), Chr(160), "")
'Das Leerzeichen ist kein Leerzeichen, sondern ein Code(160)
'Das merkt man auf den ersten Blick aber nicht. Hier wird
'der Code(160) gegen nichts ausgewechselt
Next
End Sub
Dass gleiche nur als Worksheet Change, führte bei mir zum Absturz der Mappe.
Formeln in Excel helfen mir an dieser Stelle nicht weiter, da ich Daten extern übernehme, die per kopieren/einfügen Befehl den Code 160 zum Teil enthalten. Hier sollte beim Verlassen der Zelle das Makro in dem Bereich bspw. A1:A100 ausgeführt werden, damit die Daten sofort bereinigt sind. Im Hintergrund läuft eine bedingte Formatierung. Ich kann mit dem Makro und der bedingten Formatierung dann sofort ermitteln, ob bei den übernommenen Daten Dubletten dabei sind ohne eine Hilfsspalte usw.
Würde mich freuen Hilfe zu bekommen.
Bis dahin nette Grüße
Volker
folgenden VBA-Code habe ich im Netz gefunden und für mich verwendet:
Quelle:
http://ms-excel.eu/vba/vba-textbehandlun...ernen.html
Sub Leerzeichen_entfernen()
Dim i As Integer
For i = 1 To 100
Cells(i, 1) = Application.WorksheetFunction.Substitute(Cells(i, 1), Chr(160), "")
'Das Leerzeichen ist kein Leerzeichen, sondern ein Code(160)
'Das merkt man auf den ersten Blick aber nicht. Hier wird
'der Code(160) gegen nichts ausgewechselt
Next
End Sub
Den Code konnte ich unkompliziert bei mir in einem Modul umsetzen. Mir ging es weiter noch darum, den Code beim Verlassen der aktiven Zelle bspw. durch die Enter-Taste ausführen zu lassen. Und hier war mein Problem, das ich nicht lösen konnte, da ich mich im VBA-Bereich überhaupt nicht bis sehr wenig auskenne.
Versuche nach dem trial and error Prinzip kamen dem, was ich wollte, schon recht nahe. Allerdings wurde das nachfolgende Makro ausgeführt, sobald irgendeine Zelle in dem Tabellenblatt angeklickt oder verlassen wurde.
Über Worksheet und SelectionChange
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
For i = 1 To 100
Cells(i, 1) = Application.WorksheetFunction.Substitute(Cells(i, 1), Chr(160), "")
'Das Leerzeichen ist kein Leerzeichen, sondern ein Code(160)
'Das merkt man auf den ersten Blick aber nicht. Hier wird
'der Code(160) gegen nichts ausgewechselt
Next
End Sub
Dass gleiche nur als Worksheet Change, führte bei mir zum Absturz der Mappe.
Formeln in Excel helfen mir an dieser Stelle nicht weiter, da ich Daten extern übernehme, die per kopieren/einfügen Befehl den Code 160 zum Teil enthalten. Hier sollte beim Verlassen der Zelle das Makro in dem Bereich bspw. A1:A100 ausgeführt werden, damit die Daten sofort bereinigt sind. Im Hintergrund läuft eine bedingte Formatierung. Ich kann mit dem Makro und der bedingten Formatierung dann sofort ermitteln, ob bei den übernommenen Daten Dubletten dabei sind ohne eine Hilfsspalte usw.
Würde mich freuen Hilfe zu bekommen.
Bis dahin nette Grüße
Volker