Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suche nach Umlauten
#1
Moin allerseits,
Nach längerer Krankheit sitz ich jetzt doch mal wieder an meinem Schreibtisch.
Und dieser biegt sich durch vor Arbeit. Deshalb hoffe ich, dass ich für eine Sache hier evtl. mal eine kleine Hilfe bekomme. Das Problem ist folgendes.
Auf einem Tabellenblatt namens "Peripherie" in Spalte "I" befindet sich eine Liste mit Texten, die später an ein anderes Gerät übergeben werden müssen. Diese Liste hat ein Kollege während meiner Abwesenheit erstellt, wusste aber nicht dass keine Umlaute (ä,ö,ü) oder "ß" enthalten sein dürfen. Ein einfaches suchen und ersetzen täte mir auch nur bedingt helfen, da die Länge des Textes vorgegeben ist. Ich muss also an einigen Stellen nacharbeiten. Es sind ca. 10000 Zeilen und nach vier Augen-OPs wäre ich damit ewig angestrengt, zumal ich auch noch mit Bildschirmlupe arbeite.
Meine Vorstellung ist ein kleines Makro, das mir auf einem anderen Tabellenblatt eine Liste erstellt, wo ich noch mal nacharbeiten muss. Dieses Tabellenblatt täte ich einfach "Fehler" nennen.
Wer kann helfen ?
Ich kann nicht alles wissen,
aber vieles lernen ! 21
Antwortento top
#2
Hola,


Zitat:da die Länge des Textes vorgegeben ist.



was heißt das genau?

Gruß,
steve1da
Antwortento top
#3
(26.03.2020, 08:28)Igelbauer schrieb: Ein einfaches suchen und ersetzen täte mir auch nur bedingt helfen, da die Länge des Textes vorgegeben ist.

Moin!
Obiges verstehe ich nicht!
Ohnehin wäre es sinnvoll, wenn Du mal ein paar konkrete Beispiele mit Ist- und Sollzustand posten würdest.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#4
Hallo Igel,

wenn ein Rückumwandlung nicht benötigt wird, geht es so:

Code:
Sub Main
cells.replace "ä", "ae"
cells.replace "ö", "oe"
cells.replace "ü", "ue"

cells.replace "Ä", "Ae"
cells.replace "Ö", "Oe"
cells.replace "Ü", "Ue"

End Sub

Wenn es etwas komplexer, frage einfach.

mfg
Antwortento top
#5
Hi Fen,
geht so leider nicht. Es handelt sich bei den Texten um eine Ortsbeschreibung. Wenn der Text aber länger ist als 26 Zeichen wird hinten einfach abgeschnitten, aber gerade die letzten 3 Zeichen sind immens wichtig. Ich muss ich im Falle eines Falles den Text händisch sinnvol kürzen. Z.B. aus Überwachungsraum dann Ueberwachungsr. machen.
Aber dazu muss ich erstmal alle finden. Und wie schon gesagt - 10000 Zeilen Sad.
Gruss Igel
l
Ich kann nicht alles wissen,
aber vieles lernen ! 21
Antwortento top
#6
Hola,

ok, da du keine Datei lieferst....

https://www.google.com/search?q=excel+umlaute+ersetzen&rlz=1C1CHBF_deDE810DE810&oq=excel&aqs=chrome.1.69i60j69i59l3j69i60l2j69i61j69i60.2597j0j4&sourceid=chrome&ie=UTF-8

Gruß,
steve1da
Antwortento top
#7
Sorry Steve,
das hilft mir nicht weiter, da es die Texte verlängern würde.
Gruss Igel
Ich kann nicht alles wissen,
aber vieles lernen ! 21
Antwortento top
#8
Hallo Igel,

probiere mal damit:
Sub FehlerlisteErstellen()
Dim i As Long, j As Long, k As Long, l As Long
Dim varE As Variant
Dim varQ As Variant
Dim varU As Variant
Dim varZ As Variant

varU = Array("ä", "ö", "ü", "Ä", "Ö", "Ü", "ß")
varE = Array("ae", "oe", "ue", "Ae", "Oe", "Ue", "ss")
varQ = Cells(1, 9).Resize(Cells(Rows.Count, 9).End(xlUp).Row).Value
ReDim varZ(1 To UBound(varQ), 1 To 2)

For i = 1 To UBound(varQ)
k = Len(varQ(i, 1))
For j = 0 To 6
varQ(i, 1) = Replace(varQ(i, 1), varU(j), varE(j))
Next j
If Len(varQ(i, 1)) > k Then
l = l + 1
varZ(l, 1) = i
varZ(l, 2) = varQ(i, 1)
End If
Next i

Worksheets("Fehler").Cells(1).Resize(UBound(varZ), 2).Value = varZ
End Sub
Gruß Uwe
Antwortento top
#9
Wow !!!
170 Fehler gefunden und aufgelistet.

vielen herzlichen Dank. Schön wieder dabei zu sein.

Alles Beste

Igel
Ich kann nicht alles wissen,
aber vieles lernen ! 21
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste