Hallo User,
ich habe ein Problem
))) Ich möchte zwei Tabellen miteinander vergleichen. Ich möchte wissen, welche Kunden von mir bei den Anderen Umsätze machen. Ich habe Name,Firma, Wohnort, Straße usw in einem String zusammengefasst bzw. verkettet.
Nun möchte ich, dass er alle Sonderzeichen (z.B. „“ , . !) und Leerzeichen weg lässt. Mit der Funktion TRIM(string) lässt er die Leerzeichen leider nicht weg. Gibt es eine andere Variante oder Funktion, welches dies erfüllt.
Danke im Voraus !!!
Hallo prinz-dersim,
probier mal diesen Code aus. Bei mir funktionierst:
Sub Bereinigen()
'--- Entfernt alle Sonderzeichen, die NICHT in der Variablen "erlaubt" enthalten sind
Dim i As Long
Dim Start As String
Dim Ende As String
Dim Temp As String
Dim erlaubt As String
Start = Time
erlaubt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ßÖöÜüÄä- "
'--- Hier bitte entsprechende Zeichen eingeben, die erlaubt sind
'--- Die Funktiion unterscheidet hier nicht zwischen Groß- und Kleinbuchstaben!
'--- Erlaubt ist in diesem Beispiel also auch "abcdefghijkl" usw.
'--- Zwischen Zahlen und Sonderzeichen wird aber unterschieden ("3" ist erlaubt - "§" aber nicht!)
Application.ScreenUpdating = False
For Each c In Selection
'--- die entsprechenden Zellen bitte vorher markieren
With c
Temp = ""
For i = 1 To Len(.Text)
If InStr(1, erlaubt, Mid(.Text, i, 1), vbTextCompare) \> 0 Then
Temp = Temp & Mid(.Text, i, 1)
End If
Next i
.Value = Temp
End With
Next c
Application.ScreenUpdating = True
Ende = Time
MsgBox "Start: " & Start & vbCrLf & "Ende: " & Ende, vbInformation, "...fertig!"
End Sub
gruß
moritzbock
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Moritz,
Danke für Dein Vorschlag. Aber es funktioniert leider nicht. Das Problem habe ich mit der Funktion Replace auch.
Anstelle „.text“ habe ich mein String eingefügt, ohne Punkt. Jedoch funktioniert es nicht. Ich weiß nicht, woran es liegt.
Am Anfang meiner Funktion verkette ich 4 Zeilen miteinander zu einem Strind. Kann es sein, dass es daran liegt ???
MfG
Hallo prinz-dersim,
probier mal diesen Code aus. Bei mir funktionierst:
Sub Bereinigen()
'— Entfernt alle Sonderzeichen, die NICHT in der Variablen
„erlaubt“ enthalten sind
Dim i As Long
Dim Start As String
Dim Ende As String
Dim Temp As String
Dim erlaubt As String
Start = Time
erlaubt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ßÖöÜüÄä- "
'— Hier bitte entsprechende Zeichen eingeben, die erlaubt
sind
'— Die Funktiion unterscheidet hier nicht zwischen Groß- und
Kleinbuchstaben!
'— Erlaubt ist in diesem Beispiel also auch „abcdefghijkl“
usw.
'— Zwischen Zahlen und Sonderzeichen wird aber unterschieden
(„3“ ist erlaubt - „§“ aber nicht!)
Application.ScreenUpdating = False
For Each c In Selection
'— die entsprechenden Zellen bitte vorher markieren
With c
Temp = „“
For i = 1 To Len(.Text)
If InStr(1, erlaubt, Mid(.Text, i, 1), vbTextCompare) > 0
Then
Temp = Temp & Mid(.Text, i, 1)
End If
Next i
.Value = Temp
End With
Next c
Application.ScreenUpdating = True
Ende = Time
MsgBox "Start: " & Start & vbCrLf & "Ende: " & Ende,
vbInformation, „…fertig!“
End Sub
gruß
moritzbock
Hallo User,
ich habe ein Problem
))) Ich möchte zwei Tabellen
miteinander vergleichen. Ich möchte wissen, welche Kunden von
mir bei den Anderen Umsätze machen. Ich habe Name,Firma,
Wohnort, Straße usw in einem String zusammengefasst bzw.
verkettet.
Nun möchte ich, dass er alle Sonderzeichen (z.B. „“ , . !) und
Leerzeichen weg lässt. Mit der Funktion TRIM(string) lässt er
die Leerzeichen leider nicht weg. Gibt es eine andere Variante
oder Funktion, welches dies erfüllt.
Danke im Voraus !!!
Hallo Prinz,
das funktioniert bei mir auch mit Verketteten Zellen.
Keine Ahnung, warum bei Dir gerade nicht …
gruß
moritzbock
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]