Umlaute

Hallo,

um Umlaute zu ersetzen habe ich folgendes programmiert:

Public Sub vergleich(temp As Worksheet, ergebnis As Worksheet)

Dim name As String, i As Long, x As Long, text2 As String
Dim buchstabe, text As String
Dim name2 As String, text3 As String

For x = 1 To 41
name = temp.Cells(x, 2)
text3 = Chr(32)
For i = 1 To Len(name)
buchstabe = Mid(name, i, 1)


If buchstabe = "ü" Then
buchstabe = "ue"
ElseIf buchstabe = "ö" Then
buchstabe = "oe"
ElseIf buchstabe = "ä" Then
buchstabe = "ae"
ElseIf buchstabe = "ß" Then
buchstabe = "ss"
Else
End If
text2 = text2 & buchstabe
text3 = text2
Next i
ergebnis.Cells(x, 1) = x
ergebnis.Cells(x, 2) = text3

Next x
end sub

Wenn die Schleife ein Mal durch ist, dann schreibe ich es in eine andere Zelle im Worksheet(„ergebnis“). Mein Problem ist, dass in dieser Variable „text3“ immer noch der alte Wert steht. Wie bekomme ich es hin, dass wenn er jedes Mal eine Zelle durch hat, die nächste Zelle nimmt, ohne das er den Wert mit anhängt. D.h.

Zelle1: Äpfel
Nach Schleifendurchlauf: Aepfel
Zelle2: Häuser
Nach schleifendurchlauf: AepfelHaeuser

Ups sorry, folgendes gehört nicht dazu:

text3 = Chr(32)

Ich habe so versucht die variable „text3“ mit Luft zu füllen, damit er nichts drin stehen hat, ausser leerzeichen

Hi
Du kannst auch schreiben
Text3=""

Da Text3 sich aus Text2 ergibt liegt hier vielleicht der Fehler.
Kann es sein, das du am Anfang auch Text2="" setzen musst???
Dies nur nach kurzer Betrachtung der Sachlage.

Mfg Werner

Hallo,

was haelst du davon einfach die Funktion

Replace(expression, find, replace[, start[, count[, compare]]])

zu verwenden?

text3 = Replace(name,„ä“,1)
text3 = Replace(text3,„Ü“,1)

einfach alle Umlaute ersetzen ob vorhanden oder nicht.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]