Wie kann ich mit VBA alle nicht numerischen Zeichen aus einem bestimmten Bereich in Excel entfernen?

1 Antwort

so könnte es gehen: Mich hatte es selbst interessiert, ob es direkter geht, als Zeichen für Zeichen den Zellinhalt zu prüfen, habe aber nichts gefunden. Basis war dann die Funktion hier: http://www.office-loesung.de/ftopic419494_0_0_asc.php wobei diese genau andersrum ändert und die Zahlen rauswirft.

Sub zahlen()
Dim i As Integer, zahl As String
Dim rcell, rrng As Range
Set rrng = Range("E6:I400")
For Each rcell In rrng
For i = 1 To Len(rcell)
If IsNumeric(Mid(rcell, i, 1)) Or Mid(rcell, i, 1) = "," Then
zahl = zahl & Mid(rcell.Value, i, 1)
End If
Next i
rcell.Value = zahl
zahl = ""
Next
End Sub
Tuesday123 
Fragesteller
 04.06.2016, 21:48

Hallo Ninombre,

erstmal Danke für die schnelle Antwort!

Die Funktion funktioniert soweit, allerdings nur mit ganzen Zahlen. Aus 21.4 g wird leider 214.

Ich beziehe meine Daten von einer englischen Seite, daher wird kein Komma sondern ein Punkt bei Dezimalzahlen verwendet...Ist mir eben erst aufgefallen.

Das müsste man noch irgendwie durch ein Komma ersetzen, sonst funktionieren ja keine Folgeberechnungen. Macht die ganze Sache natürlich etwas komplizierter, aber ich bin für jeden weiteren Hinweis dankbar!

0
Oubyi, UserMod Light  05.06.2016, 00:00
@Tuesday123

Falls Ninombre nicht mehr online ist, teste mal ob diese Erweiterung seines Codes funktioniert:

If IsNumeric(Mid(rcell, i, 1)) Or Mid(rcell, i, 1) = "." Then
zahl = zahl & Mid(rcell.Value, i, 1)
zahl.Replace What:=".", Replacement:=",", LookAt:=xlPart
End If
1