Microsoft Excel

Herbers Excel/VBA-Archiv

OffTopic - D1353 M17731LUNG - Text übersetzen

Betrifft: OffTopic - D1353 M17731LUNG - Text übersetzen von: Stef@n
Geschrieben am: 10.04.2015 21:54:37

Hallo Excel-Freunde,
jetzt mal zum WE ein Thema, was OffTopic ist
(möglicherweise in einem WINWORD-Forum besser ? angebracht)
Nur schätze ich das KnowHow hier in diesem Forum MEHR als ...

jetzt meine Idee / Frage:
Ich möchte gern einen Text quasi 'übersetzen' und dabei gewisse Buchstaben
> KleinBuchstaben in Grossbuchstaben umwandeln
> bestimmte Grossbuchstaben in bestimmte ZAHLEN umwandeln

Dass alles kann ich natürlich mit "=gross()" und "Suchen / Ersetzen" machen
(und diesen Code auch aufzeichnen)
nur hierbei wäre eine automatisierte Lösung (VBA ?) sicher besser.

Worum geht es genau: Text:

DIESE MITTEILUNG
DIENT ALS BEWEIS
DAFUER, WAS FUER
ERSTAUNLICHE DINGE
UNSER VERSTAND
LEISTEN KANN!
BEEINDRUCKEND!
AM ANFANG WAR'S
SCHWER, ABER
JETZT, IN DIESER
ZEILE LIEST ES DEIN
VERSTAND AUTOMATISCH
OHNE DARUEBER
NACHZUDENKEN,
SEI STOLZ DRAUF!
NUR BESTIMMTE
MENSCHEN
KOENNEN DAS LESEN.
WENN DU ZU DENEN
GEHOERST, DANN
TEILE DIESE BITTE.
DU DARST DAS GERNE KOPIEREN,
WENN DU AUCH ANDERE
DAMIT BEGEISTERN WILLST!!

soll umgewandelt in den Text:

D1353 M17731LUNG
D13N7 4L5 83W315
D4FU3R, W45 FU3R
3R574UNL1CH3 D1NG3
UN53R V3R574ND
L31573N K4NN!
8331NDRUCK3ND!
4M 4NF4NG W4R‘S
5CHW3R, 483R
J37Z7, 1N D1353R
Z31L3 L1357 35 D31N
V3R514ND 4U70M4715CH
0HN3 D4RU383R
N4CHZUD3NK3N,
531 570LZ DR4UF!
NUR 83571MM73
M3N5CH3N
KO3NN3N D45 L353N.
W3NN DU ZU D3N3N
G3HO3R57, D4NN
731L3 D135 81773.
DU D4RF5T D45 G3RN3 KOP13R3N,
W3NN DU 4UCH 4ND3R3
D4M1T 83G315T3RN W1LL5T!!

Coool, oder ? - DAS ist lesbar !?!!

- jetzt suche ich nach einem
Code (VBA), der den markieren
entsprechenden Text
in einer
XLS-Tabelle die Übersetzung vornimmt.

Dabei sollen alle Kleinbuchstaben
in Grossbuchstaben und danach(oder direkt)
in die entsprechenden "Zahlen" umgewandelt werden.

Hier die Übersetzungs-Tabelle

a A 4
b B 8
c C C
d D D
e E 3
f F F
g G G
h H H
i I 1
j J J
k K K
l L L
m M M
n N N
o O 0
p P P
q Q Q
r R R
s S 5
t T 7
u U U
v V V
w W W
x X X
y Y Y
z Z Z
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9

Diese (irgendwie geniale :) )
Darstellung, wie unser Hirn seehr schnell
einen Text trotz (Zahlen statt Text)
"übersetzen" kann, begeistert mich :)

Weitere Infos zu dem Thema gibt es auf
http://de.wikipedia.org/wiki/Leetspeak

----------------

Ein anderes bekanntes (!?!) Beispiel ist die
Möglichkeit, in Wörtern die Buchstaben zu "verwirbeln"
"Analog" der anderen genialen Art
wie ein Text gelesen werden kann
wenn von einem Wort NUR der erste
und letzte Buchstabe eines Wortes an der korrekten
Stelle bleibt :))))

Ehct ksras! Gmäeß eneir Sutide eneir Uvinisterät,
ist es nchit witihcg, in wlecehr Rneflogheie
die Bstachuebn in eneim Wort snid, das ezniige
was wcthiig ist, das der estre und der leztte Bstabchue
an der ritihcegn Pstoiin snid. Der Rset knan
ein ttoaelr Bsinöldn sein, tedztorm knan man ihn
onhe Pemoblre lseen. Das ist so, weil wir nicht
jeedn Bstachuebn enzelin leesn, snderon das Wort
als gzeans enkreenn. Ehct ksras! Das ghet wicklirh!
Und dfüar ghneen wir jrhlaeng in die Slhcue!

Hierfür habe ich einen VBA-Code, der in einer Word
Datei den markierten Text entsprechend "umwandelt"
(gemäß der Regel - erster und letzter Buchst
bleibt gleich - der Rest wird "gewirbelt")

Seit 2003 habe ich dafür einen Code:

Sub Schuettelwoerter()
Dim s As String, s1 As String, s2 As String, i As Long, w As Range, n As Boolean
On Error Resume Next
'# If VBA6 Then ' # nutzen, wenn vba6 bzw. winword 2000
'# Selection.Range.NoProofing = True
'# Else
Selection.Range.LanguageID = wdNoProofing
'# End If
Application.ScreenUpdating = False
For Each w In Selection.Range.Words
If Not n Then
i = i + 1: If (i Mod 10) = 0 Then Application.StatusBar = i
s = w.Text: s1 = Trim(s)
If Len(s1) > 3 Then
' zweiter Parameter von PermS: True = Identität verbieten
s2 = PermS(Mid$(s1, 2, Len(s1) - 2), True)
Mid$(s, 2, Len(s1) - 2) = s2
Err.Clear: w.Text = s
If Err Then
s = s1: Mid$(s, 2, Len(s1) - 2) = s2
w.Find.Execute s1, , , , , , , , , s, wdReplaceAll
Else
n = True
End If
End If
Else
n = False
End If
Next w
Application.ScreenUpdating = True
End Sub

Private Function PermS(sIn As String, Optional ByVal noIdent = False) As String
Dim sOut As String, i As Long, j As Long, tmp As String, b As Boolean
sOut = Left$(sIn, 1): b = False
For i = 2 To Len(sIn)
b = sOut <> Mid$(sIn, i, 1): If b Then Exit For
Next i
If Not b Then PermS = sIn: Exit Function

Randomize: sOut = sIn
Do
For i = Len(sIn) To 1 Step -1
j = Int(i * Rnd) + 1
tmp = Mid$(sOut, j, 1)
Mid$(sOut, j, 1) = Mid$(sOut, i, 1)
Mid$(sOut, i, 1) = tmp
Next
Loop Until Not (noIdent And (sIn = sOut))
PermS = sOut
End Function
das funzt "perfekt" ;)))

--------------------

Na, dass ist jetzt auf OFFTOPIC ;)

...
meine Frage geht jedoch auf meine Ursprungsfrage:

Wie kann ich einen markierten Text in XLS (doc ?)
gemäß der "Übersetzungs-Tabelle"
- klein in GROSS
- und dann bestimmte GROSS
- in bestimmte Zahlen
umwandeln ?

Ich freu mich seehr auf einen Tipp :)

Besten Gruss zum sonnigen WE
Stef@n

  

Betrifft: AW: OffTopic - D1353 M17731LUNG - Text übers von: Daniel
Geschrieben am: 10.04.2015 22:22:05

Hi
in Excel kanns du das so machen:

1. schreibe in einem zweiten Tabellenblatt in Spalte A alle Klein-Buchstaben untereinander
2. schreibe in die Spalte daneben den Buchstaben oder die Zahl, die den Buchstaben in Spalte A ersetzen soll:
a 4
b 8
c C
d D
e 3
usw

der umzuwandelnde Text steht in der Tabelle 1.

zum umwandeln nimmst du dann diesen Code

Sub umwandeln()
Dim Zelle As Range
For Each Zelle In Sheets("Tabelle2").Columns(1).SpecialCells(xlCellTypeConstants, 3)
    Sheets("Tabelle1").Cells.Replace _
        What:=Zelle.Value, _
        Replacement:=Zelle.Offset(0, 1).Value, _
        LookAt:=xlPart, _
        MatchCase:=False
Next
End Sub
Gruß Daniel


  

Betrifft: 5CR4M8L3 73X7 von: EtoPHG
Geschrieben am: 10.04.2015 22:56:41

Hallo Stef@an,

Diesen Code in ein Modul:

Public Function scramble(rIn As Range, Optional bZahl As Boolean) As Variant
    scramble = UCase(rIn)
    If bZahl Then
        scramble = Replace(scramble, "A", 4)
         scramble = Replace(scramble, "B", 8)
        scramble = Replace(scramble, "E", 3)
        scramble = Replace(scramble, "O", 0)
        scramble = Replace(scramble, "S", 5)
        scramble = Replace(scramble, "T", 7)
    End If
End Function
Jetzt kannst du diese Formeln anwenden (z.B. für Text in A1)
=scramble(A1) = Wandelt nur in GROSSBUCHSTABEN um
=scramble(A1;WAHR) = Wandelt in GR0558UCH57483N um ;-)

Gruess Hansueli


  

Betrifft: Na, dann ebenfalls OT, ... von: Luc:-?
Geschrieben am: 11.04.2015 02:25:07

…Stefan;
über diese Problematik wurde hier schon vor Jahren mal diskutiert. Anlass war ebenfalls eine Studie zur Noch-Lesbarkeit verstümmelter Telegramme. (Und da mokieren sich manche über die paar Abkürzungen…)
Aber wie wär's denn hiermit (was ist das?):
tslliw nretseágeb timad eredna choá ud nnew neriepok enreg sad tsfrad ud ettib
esied eleát nnad tsröheg nened ußt ud nnew nesel sad nennök neschnem etmmitseb
run foárd ßtlots eás nekngedußtchan rebürad enoh schitamotoá dnatsrev neád se tsiel
eleáßt resied ni tßttej reba rewsch s'raw ngafna ma dnekkurdneáeb nnak netseál
dnatsrev resnu engid echilnoátsre rüf saw rüfad seáweb sla tnied nguleáttim esied

(Dafür habe ich 'ne UDF! ;-])
Gruß + schöWE, Luc :-?


  

Betrifft: ...tgarfeghcan von: Matthias L
Geschrieben am: 11.04.2015 05:14:50

Hi Luc

nesel trofos se etnnok hci
? egnid hcod redo engid
? gnuleáttim redo nguleáttim

Das sind jetzt nur 2 Bsp. aus dem Text
Ist das Absicht, oder einfach nur nicht berücksichtigt?

;-)

schö.WE!
Gruß Matthias


  

Betrifft: Das ist natürlich Absicht, ... von: Luc:-?
Geschrieben am: 11.04.2015 14:34:59

…Matti,
was du sofort bemerken würdest, wenn es dir gelänge, eine SprachAusgabe darüber laufen zu lassen, die aufzuzeichnen und rückwärts abzuspielen… ;-)
Ich habe hier nämlich nicht die einfache Rückwärts-Variante laufen lassen, sondern die gemäßigt phonetische. Es gibt noch eine phonetischere Argumentierung für RückwärtsSprecher, allerdings ebenfalls an normalen Zeichensätzen orientiert.
Die UDF ist allerdings schon alt und enthält u.A. deshalb kein StrReverse. Dafür aber eine Palindrom-Erkennung, zumindest bei einfacher Umkehrung voll erkennbar. Interessant ist auch, was bei MehrfachAnwendung dabei herauskommt.
Gruß, Luc :-?


  

Betrifft: Aber hier noch die Hilfe dazu, die auch erklärt, … von: Luc:-?
Geschrieben am: 12.04.2015 02:25:30

…was gemacht wird (nebst Bspp). Das orange-farbene Arg2 ist optional.

PalVal (Text; phon=0)
Verkehrt die Richtung von Text mit Palin­drom­effekt oder phonetisch (Rück­wärts­sprechen, nur dt)
Arg2=1: beson­dere Berück­sich­tigung von Auslautverhärtung und Auslas­sungs-/Trenn-/Vokallänge-/Beto­nungs­zeichen,
sowie Vokali­sierung von …r am Wortende - Arg2=-1: phonetisch ohne diese Beson­derheiten.

Funktionsargumente:
• Arg1 → Text
Zu behandelnder Text(bezug)
• Arg2 → phon
1 = voll phonetisch, –1 = teilweise phonetisch
 Bsp1: a) negeR =PalVal("Regen"), b) nietsniE =PalVal("Einstein"), c) Renner =PalVal("Renner")
 Bsp2: a) 'iev =PalVal("Vieh";1), b) neátschneá =PalVal("Ein|stein";1), c) fian =PalVal("na|iv";1),
            d) a`po:röó =PalVal("Eu`ro:pa";-1), e) kngarhk =PalVal("krank";1), f) ªëheár =PalVal("Reiher";1)


Hinweis: '=Auslassungs-, |=Trenn-, :=Vokallänge-, `=freistehendes Betonungs­zeichen (vor der betonten Silbe)
Alle diese Zeichen bleiben in allen Ausführungs­varianten erhalten, werden aber nur bei phon=1 besonders behan­delt. Ausnahme - Trenn­zeichen werden bei Arg2=1/-1 im Ergebnis entfernt (→ Bsp2b). Auslas­sungs­zeichen werden hier auch zusätz­lich für einige am Wort­ende phone­tisch entfal­lende Zeichen gesetzt (→ Bsp2a, sowie auch …ow → 'o…). Bei fallenden Diph­thongen erhält die 1.Kompo­nente einen ´(→ Bspp2b/d). I.d.R. ist ng nur ein Laut (→ Bsp2e, ng aus n in nk). Bspp2c/f zeigen die Behand­lung der Auslaut­verhärtung (inner­halb eines Wortes nur vor gesetz­tem Trenn­zeichen mög­lich) bzw des End-r; Bsp2e zeigt zusätz­lich stimm­loses r (rh=ch, nach k). Bsp1c demons­triert den Palin­drom­effekt.
Mit phon=-1 ist außerdem eine teilweise Rück­umwandlung phone­tischer Text­umkeh­rungen möglich.

Vs 2.2b -Autor: LSr -1Pub: nie -CDate: 2003/4 -LUpd: 20100320t

Luc :-?


  

Betrifft: Wahnsinn ... von: Matthias L
Geschrieben am: 12.04.2015 07:15:32

Hallo

Wahnsinn was Du so alles entwickelst, Luc.
Danke für die Erklärungen.

schö.Sonntag
Gruß Matthias


  

Betrifft: Bitte sehr, dito! ;-) owT von: Luc:-?
Geschrieben am: 12.04.2015 14:15:26

:-?


  

Betrifft: AW: Na, dann ebenfalls OT, ... von: Stef@n
Geschrieben am: 11.04.2015 08:53:56

Moin Luc :-?

noch ne coole Variante, Texte zu verändern.

Ja, Luc ... ich kann auch rückwärts lesen ;)

Kannste die UDF bereitstellen ?
Kannst damit sicher vielen eine Freude machen - mir auch :)

BG
Stef@n


  

Betrifft: Buchstabenwirbel gibt's bei uns von: WF
Geschrieben am: 11.04.2015 09:33:51

natürlich auch als Formellösung:
http://excelformeln.de/tips.html?welcher=125

WF


  

Betrifft: AW: Buchstabenwirbel gibt's bei uns >> THX von: Stef@n
Geschrieben am: 11.04.2015 10:08:23

Danke, Walter
...
na, Excel kann ja doch alles *grins*

Gruss
Stef@n


  

Betrifft: AW: Rückwärts als UDF ... von: Daniel
Geschrieben am: 11.04.2015 13:12:46

Function rueckwaerts(txt As String) As String
Dim i As Long
For i = 1 To Len(txt)
    rueckwaerts = Mid$(txt, i, 1) & rueckwaerts
Next
End Function
oder einfacher, weil VBA die Funktion schon hat (Excel aus irgendeinem Grund noch nicht)
Function rueckwaerts(txt As String) As String
    rueckwaerts = StrReverse(txt)
End Function
Gruß Daniel


  

Betrifft: da hab ich auch noch zwei ... von: Matthias L
Geschrieben am: 11.04.2015 13:24:27

Hallo

Hier was aus dem Archiv ...
https://www.herber.de/forum/archiv/508to512/510122_zeichenfolge_rueckwaerts_in_vba.html#510219



und hier noch Einer:
346084#lmth.lamronba_latoT_126084/484ot084/vihcra/murof/ed.rebreh.www//:ptth
Dreh es herum ;-)

Gruß Matthias


  

Betrifft: Mal sehen, ... von: Luc:-?
Geschrieben am: 11.04.2015 14:39:17

…Stefan;
hängt davon ab, ob sie intern noch weitere UDFs verwendet, denn sie ist Bestandteil eines AddIns (zu dem übrigens auch eine .chm-Hilfe gehört). Wenn ich dafür Zeit habe, schaue ich mal…
Gruß, Luc :-?


  

Betrifft: Tut mir leid, ... von: Luc:-?
Geschrieben am: 12.04.2015 00:28:52

…Stefan,
aber es wdn intern noch 2 andere UDFs verwendet, von denen eine noch nicht und die andere nicht in der benötigten Version veröffentlicht wurde. Da vor allem erstere weitere QuerVerbindungen ins AddIn enthalten könnte, würde mir das jetzt, so mal eben nebenbei, zu aufwendig wdn. Viell später mal…
Gruß + schöSo, Luc :-?


  

Betrifft: DANK an ALLE, die sich an dem Thread von: Stef@n
Geschrieben am: 12.04.2015 09:19:52

.. beteiligt haben :)
... irgendwie immer klasse
wenn "man" sehen kann,
was via Excel machbar ist :)

Danke und einen schönen SO
wünscht Stef@n