Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1108to1112
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

String aufschlüsseln

String aufschlüsseln
Mandy
Hallo
ich habe in einer Tabelle eine Menge Datensätze. in der Spalte P ist hinter jedem Datensatz ein String drin, der ungefähr so aussieht:
10 aaaa# 20 bbbb# 70 cccc
Ich nenne es einfach mal einen 3-Stelligen String. Die einzelnen Stellen sind immer duch ein "#" Zeichen getrennt
Diesen String (Spalte P ) will ich per Makro aufschlüsseln. Und zwar folgendermassen:
in der Spalte AA soll nachher "3" stehn (drei, weil der String aus 3 solchen Informationen besteht)
in der Spalte AB soll nachher "10 aaaa" stehn (erster Teil des Strings)
in der Spalte AC soll nachher "20 bbbb" stehn (zweiter Teil des Strings)
in der Spalte AD soll nachher "70 cccc" stehn (dritter Teil des Strings)
Das Makro soll also alle Datensätze durcharbeiten.
Das Problem dabei, der String kannn auch mal 2 oder 4 Stellig sein. Dann sollte die Aufschlüsselung so aussehen: (Beispiel: 05 aaaa# 10 bbbb# 40 cccc# 45 dddd)
in der Spalte AA soll nachher "4" stehn (vier, weil der String aus 4 solchen Informationen besteht)
in der Spalte AB soll nachher "05 aaaa" stehn (erster Teil des Strings)
in der Spalte AC soll nachher "10 bbbb" stehn (zweiter Teil des Strings)
in der Spalte AD soll nachher "40 cccc" stehn (dritter Teil des Strings)
in der Spalte AE soll nachher "45 dddd" stehn (vierter Teil des Strings)
hhmmmmm, hat irgend wer einen "blassen" wie man sowas per Makro machen kann (bitte keine Formel)
Danke mal
Mandy

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: String aufschlüsseln
23.10.2009 09:25:00
Reinhard
Hallo Mandy,
Sub tt()
Dim Zei As Long, Teil() As String, T As Long
For Zei = 1 To Cells(Rows.Count, 16).End(xlUp).Row
Teil = Split(Cells(Zei, 16), "#")
Cells(Zei, 27).Value = UBound(Teil) + 1
For T = 0 To UBound(Teil)
Cells(Zei, 28 + T) = Teil(T)
Next T
Next Zei
End Sub
Gruß
Reinhard
Perfekt, danke :-)) owT
23.10.2009 10:41:36
Mandy
AW: String aufschlüsseln
23.10.2009 09:32:50
ransi
HAllo
Versuch mal sowas:
Option Explicit


Public Sub test()
Dim Zelle As Range
Dim Bereich As Range
Dim Arr As Variant
With Sheets("TAbelle1") 'Anpassen
    Set Bereich = Range(.Cells(1, "P"), .Cells(Rows.Count, "P").End(xlUp))
    For Each Zelle In Bereich
        Arr = Split(Zelle.Text, "# ")
        .Cells(Zelle.Row, "AA") = UBound(Arr)
        .Cells(Zelle.Row, "AB").Resize(, UBound(Arr) + 1) = Arr
    Next
End With
End Sub


ransi
Anzeige
AW: String aufschlüsseln
23.10.2009 09:52:38
Mandy
Hallo Ransi,
ja danke das Funktioniert, vielleicht noch eine Bitte, kannst Du machen, damit der Code auch weiter läuft, wenn in der Spalte P mal eine leere Zelle kommt. Da bleibt es sonst stehen und macht nichtmehr weiter.
Sonst Super, Danke
Mandy
AW: String aufschlüsseln
23.10.2009 10:10:48
ransi
HAllo
DAnn versuch mal dies:
Option Explicit


Public Sub test()
Dim Zelle As Range
Dim Bereich As Range
Dim Arr As Variant
With Sheets("TAbelle1") 'Anpassen
    Set Bereich = Range(.Cells(1, "P"), .Cells(Rows.Count, "P").End(xlUp))
    For Each Zelle In Bereich
        Arr = Split(Zelle.Text, "# ")
        .Cells(Zelle.Row, "AA") = UBound(Arr) + 1
        If UBound(Arr) >= 0 Then _
            .Cells(Zelle.Row, "AB").Resize(, UBound(Arr) + 1) = Arr
    Next
End With
End Sub


ransi
Anzeige
Besten dank, passt
23.10.2009 10:41:11
Mandy

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige