Hi, mir liegen Backups aus WhatsUp Chatverläufen als Txt Dateien vor, aber da sind die Chats alle endlos aneinander gereiht, die gewünschte Trennung sollte jeweils ab Datum beginnen (in 1. Spalte), dann Name in 2. Spalte, in 3. Spalte der Textverlauf bis nächstes Datum.
Damit das klarer wird mal eine Musterdatei anbei.
Tabelle1
<style type = "text/css"> th {font-weight:normal} </style>
A
B
C
1
27. Apr, 0:50
Micha 1&1
Hallo Frau, dank deines Einsatzes wird das nun ein Muster. Noch schönes WE und eine gute Nacht Grüße Michael
2
27. Apr, 19:43
Frau A
Hallo Michael, dein Muster ist sehr schön. Liebe Grüße Frau
3
27. Apr, 20:08
Micha 1&1
Hi Frau, hat es denn wirklich gefallen? Liebe Grüße Michael
4
27. Apr, 21:18
Micha 1&1
Hi Frau, hab vergessen danach zu fragen: hast du eine Mailadresse? Lieben Gruß Micha
Sub M_snb() With CreateObject("scripting.filesystemobject") sn = Split(Replace(.opentextfile("G:\OF\chattext.txt").readall, ",", " "), vbLf)
For j = 0 To UBound(sn) If Val(sn(j)) > 0 Then sn(j) = "|" & sn(j) Next .createtextfile("G:\OF\chattext_001.txt").write Replace(Replace(Replace(Join(sn, ""), "|", vbLf), " - ", ","), ": ", ",") End With
Sheets.Add , , , "G:\OF\chattext_001.txt" End Sub
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28 • Zwergel
danke für die beiden unterschiedlichen Lösungen. Da es wie zu erwarten ja um deutlich mehr Chatbeiträge ging (Muster haben so ihre Tücken, aber persönliche Texte kann und möchte man ja nicht posten, aber jede Änderung am Ist bildet es nicht original ab) habe ich zur Umsetzung die VBA Variante genommen und es hat geklappt. Supi, denn so sind die Chats doch deutlich besser lesbar als so in einer Endlosschleife.
Was mir bei der VBA Lösung auffiel: Chats mit Zahlen drin werden offenbar als eigenständige Chats bewertet und somit beim Durchlauf dann in eigene Zeilen geschrieben.
WhatsApp Chat mit Frau A
<style type = "text/css"> th {font-weight:normal} </style>
A
B
C
D
9
28. Apr 21:35
Frau A
Hallo Micha dann abholen.Meine Adresse :Am Beispiel 7
10
98999 MusterstadtKlingel bitte beiFrau A dann komme ich runter.Nun muss ich aber endlich ins Bett.
Sub M_snb() With CreateObject("scripting.filesystemobject") sn = Split(Replace(.opentextfile("G:\OF\chattext.txt").readall, ",", " "), vbLf)
For j = 0 To UBound(sn) If Val(sn(j)) > 0 And InStr(Left(sn(j), 3), ".") Then sn(j) = "|" & sn(j) Next .createtextfile("G:\OF\chattext_001.txt").write Replace(Replace(Replace(Join(sn, ""), "|", vbLf), " - ", ","), ": ", ",") End With
Hi snb, danke aber auch mit diesem Code wird der Text aufgesplittet ab dem Geburtsdatum.
Hier mein/dein Testcode und das Ergebnis
Code:
Sub M2_snb() With CreateObject("scripting.filesystemobject") sn = Split(Replace(.opentextfile("G:\Text mit Zahl.txt").readall, ",", " "), vbLf)
For j = 0 To UBound(sn) If Val(sn(j)) > 0 And InStr(Left(sn(j), 3), ".") Then sn(j) = "|" & sn(j) Next .createtextfile("G:\Text mit Zahl1.txt").write Replace(Replace(Replace(Join(sn, ""), "|", vbLf), " - ", ","), ": ", ",") End With
Sheets.Add , , , "G:\Text mit Zahl1.txt" End Sub
Text mit Zahl1
<style type = "text/css"> th {font-weight:normal} </style>
A
2
3. Mai 12:44 Frau A Schicke dir etwas Sonne rüber haben genug davon. Mein Geburtstag ist lange vorbei war am
3
10. Februar und wann ist deiner? Da du ja jetzt weißt wie man Fotos versenden kann schick doch mal eins von deinen Hunden. Würde mich freuen. LG A
07.06.2016, 15:29 (Dieser Beitrag wurde zuletzt bearbeitet: 07.06.2016, 15:29 von snb.)
dann versuch mal:
Code:
Sub M2_snb() With CreateObject("scripting.filesystemobject") sn = Split(Replace(.opentextfile("G:\Text mit Zahl.txt").readall, ",", " "), vbLf)
For j = 0 To UBound(sn) If Val(sn(j)) > 0 And InStr(Left(sn(j), 12), ":") Then sn(j) = "|" & sn(j) Next .createtextfile("G:\Text mit Zahl1.txt").write Replace(Replace(Replace(Join(sn, ""), "|", vbLf), " - ", ","), ": ", ",") End With
Sheets.Add , , , "G:\Text mit Zahl1.txt" End Sub
Aber, was als Datum erscheint wird als Datum anbemerkt.
danke, jetzt wird zwar nicht aufgesplittet am Geburtstag aber dafür alles in eine Zelle geschrieben. Soll ja aber in 3 Spalten: Datum, Absender, Textteil.
Teste doch mal selbst mit dem Musterdatensatz.
Aber insgesamt brauchst du da keine weitere Arbeit zu investieren (sind nur wenige Datensätze betroffen und die habe ich bereits angepaßt), ist jetzt eher nur aus Ehrgeiz, auch das noch hinzubekommen.
Hi snb, leider kommt auch damit nicht das gewünschte ergebnis, aber beenden wir hier einfach die Fragestellung. Das was schon klappte ist völlig ausreichend.