Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

TXT Datei in Excel importieren und aufsplitten
#1
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>
ABC
127. Apr, 0:50Micha 1&1Hallo Frau, dank deines Einsatzes wird das nun ein Muster. Noch schönes WE und eine gute Nacht Grüße Michael
227. Apr, 19:43Frau AHallo Michael, dein Muster ist sehr schön. Liebe Grüße Frau
327. Apr, 20:08Micha 1&1Hi Frau, hat es denn wirklich gefallen? Liebe Grüße Michael
427. Apr, 21:18Micha 1&1Hi Frau, hab vergessen danach zu fragen: hast du eine Mailadresse? Lieben Gruß Micha
528. Apr, 21:35Frau AHallo Micha, dann abholen.
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  


Angehängte Dateien
.txt   Chattext.txt (Größe: 492 Bytes / Downloads: 11)
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#2
Hallo Michael,

Dein Muster läßt sich doch problemlos in Excel kopieren:



[html]
Arbeitsblatt mit dem Namen 'Tabelle2'
 AB
127. Apr, 0:50 - Micha 1&1: Hallo Frau, dank deines Einsatzes wird das nun ein Muster. Noch schönes WE und eine gute Nacht 
2Grüße Michael 
3  
427. Apr, 19:43 - Frau A: Hallo Michael, 
5dein Muster ist sehr schön. 
6Liebe Grüße Frau 
727. Apr, 20:08 - Micha 1&1: Hi Frau, hat es denn wirklich gefallen? 
8Liebe Grüße 
9Michael 
1027. Apr, 21:18 - Micha 1&1: Hi Frau, hab vergessen danach zu fragen: hast du eine Mailadresse? Lieben Gruß Micha 
11  
12  
1328. Apr, 21:35 - Frau A: Hallo Micha, dann abholen. 
14  
15  
1627. Apr, 0:50 - Micha 1&1: Hallo Frau, dank deines Einsatzes wird das nun ein Muster. Noch schönes WE und eine gute Nacht 
17Grüße Michael 
18  
1927. Apr, 19:43 - Frau A: Hallo Michael, 
20dein Muster ist sehr schön. 
21Liebe Grüße Frau 
2227. Apr, 20:08 - Micha 1&1: Hi Frau, hat es denn wirklich gefallen? 
23Liebe Grüße 
24Michael 
2527. Apr, 21:18 - Micha 1&1: Hi Frau, hab vergessen danach zu fragen: hast du eine Mailadresse? Lieben Gruß Micha 
26  
27  
2828. Apr, 21:35 - Frau A: Hallo Micha, dann abholen. 
29  
3027. Apr, 0:50Micha 1&1: Hallo Frau, dank deines Einsatzes wird das nun ein Muster. Noch schönes WE und eine gute Nacht
31Grüße Michael 
32  
3327. Apr, 19:43Frau A: Hallo Michael,
34dein Muster ist sehr schön. 
35Liebe Grüße Frau 
3627. Apr, 20:08Micha 1&1: Hi Frau, hat es denn wirklich gefallen?
37Liebe Grüße 
38Michael 
3927. Apr, 21:18Micha 1&1: Hi Frau, hab vergessen danach zu fragen: hast du eine Mailadresse? Lieben Gruß Micha
40  
41  
4228. Apr, 21:35Frau A: Hallo Micha, dann abholen.
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
[/html]

1. Block als Unicode-Text
2. Block nur einfügen
3. Block mit "-" als voreingestelltem Trennzeichen für Text in Spalten

Der Rest ist doch leicht zu bewerkstelligen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Zwergel
Antworten Top
#3
Code:
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:
  • Zwergel
Antworten Top
#4
Hi ihr Zwei,

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>
ABCD
928. Apr  21:35Frau AHallo Micha  dann abholen.Meine Adresse :Am Beispiel 7
1098999 MusterstadtKlingel bitte beiFrau A dann komme ich runter.Nun muss ich aber endlich ins Bett.
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  

Da aber nur selten, änder ich es manuell ab.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#5
Code:
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
 
  Sheets.Add , , , "G:\OF\chattext_001.txt"
End Sub
Antworten Top
#6
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
23. Mai  12:44 Frau A Schicke dir etwas Sonne rüber  haben genug davon. Mein Geburtstag ist lange vorbei  war am
310. 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
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  


Ist auch nicht sauber in Spalten aufgeteilt woerden, Chatdatum, Absender und Text sind in einer Spalte, ab Geburtstag dann zweite Zeile.


Angehängte Dateien
.txt   Text mit Zahl.txt (Größe: 267 Bytes / Downloads: 3)
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#7
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.
Antworten Top
#8
Hi snb,

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.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#9
Kann ich nicht testen, weil das abhängt von lokale Einstellungen: listseparator z.B.

Bie mir läuft's tadellos.

Statt komma kannst du ; oder tab verwenden.

.createtextfile("G:\Text mit Zahl1.txt").write Replace(Replace(Replace(Join(sn, ""), "|", vbLf), " - ", ";"), ": ", ";")
Antworten Top
#10
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.
Mit freundlichen Grüßen  :)
Michael
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste