Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wort zerlegen in Zweier -Schritten zB test "te st"

Wort zerlegen in Zweier -Schritten zB test "te st"
16.10.2013 12:50:44
Michael
Hallo!
Wie bekommt man ein Wort in Zweierschritten / zerlegt?
Einzelschritt pro Buchstabe klappt, setze ich den Wert "Mid(Erster, pos + z, 1)" auf 2;
so läuft er drei mal durch mit dem Ergebnis te es st " Ergebnis soll "te st" sein.
  • 
    Sub teil3()
    Dim Erster As String
    Dim pos As Integer
    Dim i, z As Integer
    i = 1
    For i = 1 To 65536
    If Cells(i, 1) = "" Then Exit Sub
    Cells(i, 1).Select
    Erster = Cells(i, 1)
    For pos = 1 To Len(Erster)
    Cells(i, pos + 1).Value = Mid(Erster, pos + z, 1)
    Next pos
    Next i
    End Sub
    


  • 9
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Wort zerlegen in Zweier -Schritten zB test "te st"
    16.10.2013 13:05:03
    CitizenX
    Hi,
    ungefähr so:
    
    Sub daswort()
    Dim i, n, out, instep, delim
    instep = 2
    delim = Chr(32)
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    out = vbNullString
    For n = 1 To Len(Cells(i, 1)) Step instep
    out = out & Mid(Cells(i, 1), n, instep) & delim
    Next
    If Len(out) Then Cells(i, 1) = out
    Next
    End Sub
    
    Grüße
    Steffen

    AW: Wort zerlegen in Zweier -Schritten zB test "te st"
    16.10.2013 13:08:31
    Bastian
    Hallo Michael,
    oder mit Deinem Code leicht angepasst:
    Sub teil3()
    Dim Erster As String
    Dim pos As Integer
    Dim i, z As Integer
    i = 1
    For i = 1 To 65536
    z = 2
    If Cells(i, 1) = "" Then Exit Sub
    Cells(i, 1).Select
    Erster = Cells(i, 1)
    For pos = 1 To Len(Erster) Step 2
    Cells(i, z).Value = Mid(Erster, pos, 2)
    z = z + 1
    Next pos
    Next i
    End Sub
    
    Gruß, Bastian

    Anzeige
    AW: Wort zerlegen in Zweier -Schritten zB test "te st"
    16.10.2013 14:35:35
    Michael
    Danke!
    Auf step 2 hätte ich ewig gesucht!

    AW: Wort zerlegen in Zweier -Schritten zB test "te st"
    16.10.2013 13:09:23
    Peter
    Hallo Michael,
    das könnte z. B. so funktionieren:
    Option Explicit
    Public Sub Zerlegen()
    Dim lZeile     As Long
    Dim iPosition  As Integer
    Dim sText      As String
    For lZeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    sText = ""
    For iPosition = 1 To Len(Range("A" & lZeile).Value) Step 2
    If sText = "" Then
    sText = Mid(Range("A" & lZeile).Value, iPosition, 2)
    Else
    sText = sText & " " & Mid(Range("A" & lZeile).Value, iPosition, 2)
    End If
    Next iPosition
    MsgBox sText
    Next lZeile
    End Sub
    

    Gruß Peter

    Anzeige
    AW: Wort zerlegen in Zweier -Schritten zB test "te st"
    16.10.2013 13:35:04
    Frank
    Hallo,
    markiere die Zellen mit den zu trennenden Zeichenketten und führe das folgende Makro aus:
    Sub Trennen()
    Dim intI As Integer
    Dim intSpalte As Integer
    Dim rngZelle As Range
    For Each rngZelle In Selection.Cells
    For intI = 1 To Len(rngZelle.Value) Step 2
    intSpalte = intSpalte + 1
    rngZelle.Offset(0, intSpalte).Value = Mid(rngZelle.Value, intI, 2)
    Next
    intSpalte = 0
    Next
    End Sub
    

    Mit freundlichem Gruß aus der Rattenfängerstadt Hameln
    Frank Arendt-Theilen
    ---
    at-exceltraining.de

    und noch einer
    16.10.2013 13:44:54
    Rudi
    Hallo,
    Sub teil3()
    Dim Erster As String
    Dim pos As Integer
    Dim i
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Erster = Cells(i, 1)
    For pos = 1 To Len(Erster) Step 2
    Cells(i, pos / 2 + 1.5) = Mid(Erster, pos, 2)
    Next pos
    Next i
    End Sub
    

    Gruß
    Rudi

    Anzeige
    Sehr schöne Demo dessen, was ich als ...
    16.10.2013 13:59:40
    Luc:-?
    …„Eintagsfliegen“ (man kann auch Einweg- oder Wegwerf-Code dazu sagen) zu bezeichnen pflege, Leute! ;->
    Niemand verwendet Konstanten zwecks leichterer Anpassung an geänderte Anforderungen und alle Lösungen selbstverständlich nur als Subproz, keine einzige UDF, geschweige denn eine universelle! :-[
    Für jede Anforderung wieder ein neuer Schnipsel → wer soll das denn alles mal verwalten, Michael?
    Dein armer Nachfolger! Hier kann man abundzu lesen, was Nachfolger damit machen: "Wie kann ich die Makros loswerden?", oder so ähnlich!
    Eigentlich ist das Energieverschwendung! Befriedigt euch das?
    Gruß Luc :-?

    Anzeige
    und zum Schluss
    16.10.2013 17:42:48
    CitizenX
    ..geht immer noch einer ;-)
    
    Sub daswort()
    Dim i
    Dim regex As Object: Set regex = CreateObject("vbscript.regexp")
    Const myStep = 3 'Anzahl Zeichen
    Const delim = "|" 'der Texttrenner
    Const texttrenner = "\s\.-;" 'erlaubte Texttrennzeichen die ignoriert werden sollen
    With regex
    .Global = True
    .Pattern = "((.*?[^" & texttrenner & "]){" & myStep & "})"
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 1) = .Replace(Cells(i, 1), "$1" & delim)
    Next
    End With
    End Sub
    

    Na also, geht doch! ;-] Gruß owT
    18.10.2013 15:37:32
    Luc:-?
    :-?

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige