Clever-Excel-Forum

Normale Version: ab dem * neue Zeile und wert reinschreiben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich habe mal ein Problem :)

Ich habe Daten in folgender Form in einer Zelle:

*GPS#052#80#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###SB##958006420813;0*GPS#052#79#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###TF##958006420813;0*GPS#052#78#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###SF##958006420813;0*GPS#052#77#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###TV##958006420813;0

Könnt Ihr mir sagen wie ich es hin bekomme, das ab dem * die Werte in in eine neue Zeile rein geschrieben werden?

Habe davon sehr viele werte etwa 2000 Stück und möchte diese ungern händisch trennen :)
Hi,

probier's mal mit Text in Spalten (Menü Daten/Datentools)
Hi,

ja das habe ich ja schon versucht, dann schreibt er mit es ja in nächste Spalte,

jedoch muss es in die nächste Zeile :)
Wenn Du das gemacht hast gehst du auf Kopieren - Inhalte einfügen - Transponieren ...

Gruß
Marcus
Hallo,

für Dein kleines Beispiel eine kleine VBA Lösung:

Code:
Sub splitten()
  Dim i As Long
  Dim a
  a = Split(Cells(1, 1), "*")
  For i = LBound(a) To UBound(a)
      Cells(i + 1, 2) = a(i)
  Next i
End Sub
Hallo,

hier (der Vollständigkeit halber...) eine Lösung mit Formeln + Hilfsspalte.

Wenn der aufzusplittende Text in B3 steht:

Formel in B6:
=WENNFEHLER(SUCHEN("~*";$B$3;B5+1);"")
Ermittelt die Positon des *
(B5 muss leer sein!)

Formel in C6:
=WENNFEHLER(TEIL($B$3;B6+1;WENN(UND(B6>0;B7="");LÄNGE($B$3)-B6;B7-B6-1));"")
Splittet den Text auf.

Ich bin davon ausgegangen, dass der Text immer mit einem * beginnt.
Sollte vor dem ersten * noch was stehen, müsste die Formel in C6 angepasst werden.

Gruss
Fred
Moin!
Ich würde das Array gleich direkt in den Bereich schreiben:
Code:
Sub Zeilentrenner()
Dim arr
arr = Split(Mid$("*GPS#052#80#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###SB##958006420813;0*GPS#052#79#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###TF##958006420813;0*GPS#052#78#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###SF##958006420813;0*GPS#052#77#958006420813#RB58519NN#20200224T133322#11.04791833#49.44939833#0.55#0###TV##958006420813;0", 2, 9 ^ 9), "*")
  Range("A1").Resize(UBound(arr) + 1) = _
    WorksheetFunction.Transpose(arr)
End Sub

Gruß Ralf