Herbers Excel-Forum - das Archiv

zeichenfolge per vba vertauschen

Bild

Betrifft: zeichenfolge per vba vertauschen
von: josef s.

Geschrieben am: 25.04.2005 13:02:43
hallo zusammen,
ich möchte die in einer zelle stehenden zeichen nach folgendem prinzip "durcheinander" bringen:
erstes und letztes zeichen sollen beibehalten werden. die zeichen dazwischen sollen nach zufallsprinzip durcheinander geschrieben werden.
mal als beispiel: von "josef" soll lediglich als erstes zeichen "j" und als letztes zeichen "f" an richtiger stelle stehen. die buchstaben "o,s,e" sollen bunt gemischt durcheinander stehen. die länge der zeichenfolge ist dabei immer unterschiedlich.
ich weiß, meine frage scheint blödsinn oder unfug zu sein. ist es aber keineswegs !
und für eure bemühungen bedanke ich mich schon mal vorab !!!
schönen tag noch, gruß aus regensburg
josef
Bild

Betrifft: AW: zeichenfolge per vba vertauschen
von: Reinhard

Geschrieben am: 25.04.2005 14:28:03
Hallo Josef,
habe es probiert, kriege es aber nicht hin, da die Variable pos immer den Wert 1 hat, was ich nicht vertsehe:-(
Aus "abcdef" wird immer "abdddf"
Naja, vielleicht nützt dir der Ansatz was, oder jmd hier kann ihn umbasteln dass er klappt.
Gruß
Reinhard
Sub tt()
Range("A1") = "abcdef"
wort = Mid(Range("A1"), 2, Len(Range("A1")) - 2)
Range("A1") = Left(Range("A1"), 1) & Right(Range("A1"), 1)
'MsgBox wort
For n = Len(wort) To 1 Step -1
Randomize
pos = Int(Rnd(n)) + 1
MsgBox pos
zwort = zwort & Mid(wort, pos, 1)
wort = Left(wort, pos - 1) & Right(wort, pos + 1)
'MsgBox zwort
Next n
'MsgBox zwort
Range("A1") = Left(Range("A1"), 1) & zwort & Right(Range("A1"), 1)
End Sub

Bild

Betrifft: AW: zeichenfolge per vba vertauschen
von: Reinhard

Geschrieben am: 25.04.2005 14:33:37
Hallo Josef,
probier das nachfolgende mal
Viele Grüße
Reinhard
Sub tt()
Range("A1") = "abcdef"
wort = Mid(Range("A1"), 2, Len(Range("A1")) - 2)
Range("A1") = Left(Range("A1"), 1) & Right(Range("A1"), 1)
'MsgBox wort
For n = Len(wort) To 1 Step -1
Randomize
pos = Int(n * Rnd()) + 1
'MsgBox pos
zwort = zwort & Mid(wort, pos, 1)
wort = Left(wort, pos - 1) & Mid(wort, pos + 1)
'MsgBox zwort
Next n
'MsgBox zwort
Range("A1") = Left(Range("A1"), 1) & zwort & Right(Range("A1"), 1)
End Sub

Bild

Betrifft: AW: zeichenfolge per vba vertauschen
von: josef s.
Geschrieben am: 25.04.2005 15:07:24
hallo reinhard,
erstmal vielen dank für deine antwort !
sag nur soviel: genau was ich gebraucht habe.
danke !
 Bild
Excel-Beispiele zum Thema "zeichenfolge per vba vertauschen"
Summe bilden, wenn Kriterium Zeichenfolge Zeichenfolge aufteilen
Filtern einer Zahl aus einer Zeichenfolge Zeichenfolgen in Zahlen nach Textimport
Zeichenfolge korrigieren Zeichenfolge umkehren
Zeichenfolge in Wert wandeln Zeichenfolgen zusammenfassen
Zeichenfolge AAAA bis DDDD listen Flaggen nach dem Zufallsprinzip vertauschen