Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kodieren innerhalb einer Zeichenfolge

Kodieren innerhalb einer Zeichenfolge
23.08.2007 23:13:21
hannes
Hallo,
ich möchte speziell definierte, in einer Zelle eingegebene Zahlen und Buchstaben durch andere spezielle Buchstaben ersetzen, also so etwas wie eine Umkodierung basteln.
Dies soll einer Vokabelliste dienen und mir das Eintippen erleichtern. Für ein „ß“ möchte ich z.B die Kombination „s1“ eintippen und dies soll durch „ß“ in einer anderen Zelle ersetzt werden.
So möchte ich aus einer Matrix (oder einfachen Tabelle), in der spaltenweise zahlen von 1 bis n und zeilenweise Buchstaben aufgetragen sind, aus deren Kombination jeweils neue Buchstaben einfügen lassen.
Ein weiteres Problem ist, dass die Buchstabenkombinationen im Text auftauchen und wiederholt vorkommen können. Tippe ich also in eine Zelle „Die Fus1ba2der“ ein, soll in einer Matrix (oder Tabelle) nach der Kombination „s1“ und „a2“ gesucht werden (z.B. C4&E3, wenn C4=s und E3=1) und dann für „s1“ ein „ß“ ausgegeben bzw. für „a2“ ein ä ersetzt werden (also das, was vorher in die Matrix eingetragen wurde).
Wie stelle ich das an?
Erste Versuche mit Wechseln und SVerweis bringen mich ein wenig näher, doch bekomme ich keine Wiederholungen rein.
Grüße
Hannes

Bsp.:
Zelle A1: Fus1ba2der a2rgern mich
Zelle A2: HausTue3r
Kodierungstabelle:
1    2    3
S     ß    ê    @
A     €    ä    ZeichenXYZ
UE    î    í    ü
Ergebnis
Zelle B1: Fußbäder ärgern mich
Zelle B2: HausTür


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kodieren innerhalb einer Zeichenfolge
24.08.2007 00:26:00
Daniel
Hi
meines wissen nach geht das mit Formeln nur über geschachtelte WECHSEL-Funktionen, die müssten dann auch mit den Mehrfach-Vorkommenden Zeichen zurecht kommen.
Du hast dann halt ein Formel-Monster mit 9x Wechseln oder mehr.
Hier jetzt mal für 3

=WECHSELN(WECHSELN(WECHSELN(A1;"a1";"ä");"o1";"ö");"u1";"ü")


oder halt selbst ne kleine Funktion Schreiben:


Public Function WechselnMulti(Text As String) As String
Text = Replace(Text, "a1", "ä")
Text = Replace(Text, "o1", "ö")
Text = Replace(Text, "u1", "ü")
WechselnMulti = Text
End Function


dann wird etwas übersichlicher
Gruß, Daniel

Anzeige
AW: Kodieren innerhalb einer Zeichenfolge
24.08.2007 09:36:00
{Boris}
Hi Hannes,
ein Kombination aus Change-Ereignis und UDF ist hier wahrscheinlich zielführend.
Leg Dir irgendwo in der Mappe Deine Kodierungstabelle an - im Beispiel ist es Tabelle1!H1:K4. Diese ist natürlich erweiterbar.
Dann das Klassenmodul der entsprechenden Tabelle:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 1 And .Count = 1 Then 'wirkt nur in Spalte A
If .Value  "" Then
On Error GoTo Uups
Application.EnableEvents = False
.Value = Aendern(.Value, [tabelle1!h1:k4]) 'Tabelle1!H1:K4 ist die Matrix
End If
End If
End With
Uups:
Application.EnableEvents = True
End Sub


Und in ein allgemeines Modul:


Option Explicit
Function Aendern(S As String, Bereich As Range) As String
Dim x As Long, y As Long
For x = 2 To Bereich.Columns.Count
For y = 2 To Bereich.Rows.Count
S = Replace(S, Bereich(y, 1) & Bereich(1, x), Bereich(y, x))
Next y
Next x
Aendern = S
End Function


Groß-und kleinschreibung wird hierbei im übrigen unterschieden.
Grüße Boris

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige