PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (Sonstige) - Excel - Bestimmten Text automatisch in Spalten



Jana-Maria
01.07.2015, 15:10
Hallo,

ist es möglich in Excel Text automatisch in Spalten zu trennen.

zB. hat jede Serie einen bestimmten Releasenamen.

Tiere.bis.unters.Dach.S03E09.Fuchsjagd.German.WS.D VDRiP.x264-RegeLRechT.mkv
Hawaii.Fuenf.Null.S06E01.In.verlorenen.Haende.Germ an.DL.FS.DVDRiP.x264-RegeLRechT.mkv
Shameless.S05E11.Drugs.Actually.GERMAN.DUBBED.WS.H DTVRip.x264-TVP.mkv
Mr.Selfridge.S03E05.GERMAN.DUBBED.DVDRip.x264-ACED.mkv
Resurrection.US.S02E02.GERMAN.Dubbed.WEBRiP.x264-idTV.mkv
Parenthood.S04E07.Der.Soldat.Ryan.York.German.Dubb ed.DVDRip.x264-CRiSP.mkv
New.Girl.S04E13.Coming.Out.GERMAN.DUBBED.WS.WEBRip .x264-TVP.mkv

und so weiter.

Bisher trenne ich von Hand in Excel über Text in Spalten.

Sieht dann so aus:

https://www.szenebox.org/images/_imported/2015/07/1.jpg (http://imgs.re/image/nj1P)

Ist es nicht möglich automatisch zu trennen das gleich alles richtig getrennt ist?

jbs
01.07.2015, 18:22
Ich schreib dir n Makro dafür... Moment.

- - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -

Ist jetzt zwar nicht das schönste, funktioniert soweit aber.

Schalt dir mal die Entwicklertools frei:

Menü -> Optionen -> gleich auf der ersten Seite sollte was mit Entwicklertools stehen, das anhaken.
Dann erhältst du einen neuen Tab namens Entwicklertools. Dort kannst du dann drauf klicken und dir einen Button erstellen.
Hinter diesen Button legst du das Makro mit dem Namen Parse_Releases. Anschließend kopierst du den folgenden Code in das neue Fenster rein, das geöffnet wurde (VBA Editor).
Dann klickst du im VBA Editor oben auf Extras -> Verweise. Dort suchst du dir Microsoft VBScript Regular Expressions 5.5 raus und setzt einen Haken davor. Das bestätigst du mit OK.
Speichern und schon kannst du mit Klick auf den Button die Staffel und Episodennummer automatisch übernehmen.



Sub Parse_Releases()
Dim i As Long

For i = 1 To Rows.Count
Dim cellValue As String
cellValue = Cells(i, 1).Value

If Not IsEmpty(Cells(i, 1).Value) Then
Dim regEx As New VBScript_RegExp_55.RegExp
Dim matches, s, match
regEx.Pattern = "\.S([0-9]{2})E([0-9]{2})\."
regEx.IgnoreCase = True
regEx.Global = False

If regEx.Test(cellValue) Then
Set matches = regEx.Execute(cellValue)
match = matches(0)
Dim vals
vals = Split(match, "E")

Cells(i, 2).Value = Replace(vals(0), ".S", "")
Cells(i, 4).Value = Replace(Replace(vals(1), "E", ""), ".", "")

'Falls du den Groupnamen auch noch auslesen und in eine Zelle packen willst.
'Dim grp As String
'Dim strlen As Integer
'strlen = Len(cellValue)
'grp = Right(cellValue, strlen - InStrRev(cellValue, "-"))

'If InStr(grp, ".") Then
' Dim grpval
' grpval = Split(grp, ".")
' grp = grpval(0)
'End If

'Cells(i, 5) = grp
End If
End If
Next i
End Sub

Jana-Maria
01.07.2015, 20:44
Geile Sache scheint zu gehen.
Top danke.

jbs
01.07.2015, 21:06
Freut mich. Bei meinen Tests hats einwandfrei geklappt. Falls sonst noch was brauchen solltest -> melden!