Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: .rtf-Datei auslesen

.rtf-Datei auslesen
15.05.2006 23:55:27
Reinhard
Hallo Wissende
.rtf nahm Hans nicht an, ich taufte sie in .txt um.
Wie liest man denn eine .rtf-Datei aus?
https://www.herber.de/bbs/user/33660.txt
Wenn ich sie als .rtf in Word öffne, erscheinen nach dem Vorspann die Daten Zeilenweise.
Wie mache ich das um sie in Excel einzulesen, also jede Zeile in Spalten anhand des Kommas einzutragen?
Wie mir mein achfolgendes Makro zeigt sind die daten da wie bei Html-Seitencode mit Tags getrennt, muss ich die alle eliminieren oder geht es direkter?
Option Explicit
Sub tt()
Dim Satz
Close
Open "C:\andre\cape race.rtf" For Input As #1
While Not EOF(1)
Input #1, Satz
MsgBox Satz
Wend
Close
End Sub

Gruß
Reinhard
ps: Übrigens, wäre mein erster kommerzieller Auftrag wenn es klappt, dann die Daten in Excl einzubinden bekomme ich hin, aber Word-Vba kenne ich nicht bzw den Zugriff auf Word mit Excel-Vba. Naja das Angebot von 70-130 € für die Lösung ist nicht so dolle, aber wäre ein Anfang, so wie Dagobert Duck mit seinem ersten Taler oder was das war :-)))
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .rtf-Datei auslesen, ist XML
16.05.2006 08:02:04
firmus
Hi Reinhard,
Deine Datei scheint eine XML-file zu sein.
einfach von .TXT oder .RTF auf XML ändern und mit Word öffnen.
Das sollte Dir schon mal einen Schritt weiterhelfen.
(In XLS ist sie nicht zu öffnen, XML nicht verträglich).
Wie TXT-Files in XLS zu Öffnen sind:
In EXCEL über File, OPEN, ..... siehe attached ppt-file.
https://www.herber.de/bbs/user/33662.ppt
Gruss,
Firmus,
Brauchbar?
Anzeige
AW: .rtf-Datei auslesen, ist XML
16.05.2006 13:42:42
Reinhard
Hallo firmus,
danke für die ppt, aber scheinbar nützt mir das wenig, denn in der Datei ist z.B Düsseldorf als
D\loch\af0\hich\af0\dbch\f1 \'fc\hich\af0\dbch\af1\loch\f0 sseldorf
eingetragen. Scheinbar werden da Umlaute großstringig ersetzt, deshalb nützt mir doe Trennung nach "\" nicht viel.
Im Inet fand ich Code der leicht angepasst und als Word-Makro gestartet in Word bestens funktioniert.
Jetzt muss ich nur noch wissen, wie ich den Code umschreiben muss damit er in Excel läuft, also in Excel Word mit einer betimmten Datei öffnen, die zeilen sequentiell auslesen usw.
Option Explicit
Sub DokumentInZeileSpalten2()
Dim Zeilen() As String, strtext, i
strtext = Replace(ActiveDocument.Content, Chr(13), Chr(11))
Zeilen = Split(strtext, Chr(11))
For i = 0 To UBound(Zeilen)
If InStr(Zeilen(i), "Einlage") > 0 Then MsgBox Zeilen(i)
Next i
End Sub

Gruß
Reinhard
Anzeige
AW: .rtf-Datei auslesen
16.05.2006 14:41:11
Reinhard
Hallo Wissende,
Option Explicit
' Die Bibliothek "Microsoft Word x.x Object Library"
' muss aktiviert sein (EARLY BINDING)
Sub ImportFromWord()
Dim WordApp As New Word.Application, strPath As String
Const strFile As String = "cape race.rtf"
strPath = "c:\Andre"
With WordApp
.ChangeFileOpenDirectory strPath
.Documents.Open strFile
With .Selection
.WholeStory
.Copy
End With
End With
Workbooks.Add
ActiveSheet.Paste
End Sub
Wenn das Makro läuft erscheint das Fensterchen "Dokument wird verwendet" und ich muss
"Schreibgeschützt" auswählen. Danach läuft das Makro durch.
Um das zu beheben, wollte ich mit F8 die Codezeile herausfinden.
Das geht aber nicht weil sich Excel dann aufhängt in/an der Zeile "With .Selection",
irgendwann kommt dann Fehlermeldung dass Excel noch auf Antwort von der OLE-Anwendung
wartet.
Ich muss dann Excel mit dem Task-manager abschiessen.
Meine 3 Fragen:
1) Wie unterdrücke ich die Meldung "Dokument wird verwendet", DisplayAlerts?
2) Ich möchte keine neue Mappe, die Daten sollen durch
.copy destination:=Thisworkbook.worksheets("Tabelle1").Range("A1")
in die aktive Excelmappe, aber scheinbar ist dieses "copy" von Word und kennt
destination nicht.
3) Wie heisst der GUID für "Microsoft Word x.x Object Library"
analog zum Verweis auf fm20:
Private Const FM20_GUID = "{0D452EE1-E08F-101A-852E-02608C4D0BB4}"

Danke ^ Gruß
Reinhard
Anzeige
AW: .rtf-Datei auslesen
16.05.2006 17:00:09
Franz
Hallo Reinhard,
nach den folgenden Anpassungen funktioniert das Makro (Konfiguration: WinXP, MS Office Professional 2003). Dabei darf die rtf-Datei nicht in Word geöffnet sein, wenn das Makro gestartet wird. Ansonsten müßte man in Word prüfen, ob die rtf-Datei schon geöffnet ist und das Dokument aktivieren, hab ich auf die Schnelle aber nicht hinbekommen. Nach dem Einfügen der Daten in die EXCEL-Tabelle wird die rtf-Datei in Word wieder geschlossen.

Option Explicit
' Die Bibliothek "Microsoft Word x.x Object Library"
' muss aktiviert sein (EARLY BINDING)
Sub ImportFromWord()
Dim WordApp As New Word.Application, strPath As String, wks1 As Worksheet
Const strFile As String = "cape race.rtf"
Set wks1 = ActiveSheet
strPath = "c:\Andre"
With WordApp
.ChangeFileOpenDirectory strPath
.Documents.Open strFile
With .Selection
.WholeStory
.Copy
End With
wks1.Range("A1").Select
wks1.PasteSpecial Format:="Unicode-Text", Link:=False, DisplayAsIcon:=False
'       oder
'        wks1.Paste
Range("A1").Select
.ActiveDocument.Close SaveChanges:=False
.Quit
End With
End Sub

Zu Frage 3 hab ich keien Antwort.
Gruß
Franz
Anzeige
AW: .rtf-Datei auslesen
16.05.2006 17:49:23
Reinhard
Hallo Franz,
ich muss jetzt weg aber baue das heute Abend in meinen inzwischen stark gewachsenen Code irgendwie ein.
Gruß
Reinhard
AW: .GUID
16.05.2006 18:51:16
Tassos
Hallo Reinhard,
hiermit wird der GUID von jeden aktivierten Verweis in einBlatt aufgelistet:


Sub dumbRef()
'listet die aktivierte Verweise auf
Dim i%
On Error Resume Next
For i = 1 To ActiveWorkbook.VBProject.References.Count
Cells(i, 1) = ActiveWorkbook.VBProject.References.Item(i).Name
Cells(i, 2) = ActiveWorkbook.VBProject.References.Item(i).Description
Cells(i, 3) = ActiveWorkbook.VBProject.References.Item(i).GUID
Next
Columns.AutoFit
End Sub


Gruss
Tassos
Anzeige
Danke dir sehr, o.w.T.
19.05.2006 16:00:25
Reinhard
Hallo Tassos,
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

RTF-Dateien in Excel importieren


Schritt-für-Schritt-Anleitung

Um eine .rtf-Datei in Excel zu importieren, kannst Du die folgenden Schritte befolgen:

  1. RTF-Datei vorbereiten: Stelle sicher, dass die .rtf-Datei korrekt formatiert ist. Wenn Umlaute oder spezielle Zeichen vorhanden sind, kann es notwendig sein, diese zu überprüfen.

  2. VBA-Makro erstellen:

    • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
    • Füge ein neues Modul hinzu (Einfügen > Modul).
    • Kopiere und füge den folgenden VBA-Code ein:
    Option Explicit
    Sub ImportFromWord()
       Dim WordApp As New Word.Application
       Dim strPath As String
       Const strFile As String = "cape race.rtf" ' Dateiname anpassen
       strPath = "C:\Andre" ' Pfad anpassen
    
       With WordApp
           .ChangeFileOpenDirectory strPath
           .Documents.Open strFile
           .Selection.WholeStory
           .Selection.Copy
           ThisWorkbook.Worksheets("Tabelle1").Range("A1").PasteSpecial Format:="Unicode-Text"
           .ActiveDocument.Close SaveChanges:=False
           .Quit
       End With
    End Sub
  3. Makro ausführen: Schließe Word, falls es geöffnet ist, und führe dann das Makro aus (F5 im VBA-Editor).

  4. Daten in Excel prüfen: Die Daten sollten jetzt in der angegebenen Excel-Tabelle erscheinen.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen der .rtf-Datei: Stelle sicher, dass die Datei nicht bereits in Word geöffnet ist, bevor Du das Makro ausführst. Schließe Word, um Konflikte zu vermeiden.

  • Umlaute werden nicht korrekt dargestellt: Überprüfe die Kodierung der .rtf-Datei. Möglicherweise müssen spezielle Zeichen manuell angepasst werden.

  • Makro hängt sich auf: Wenn Excel beim Ausführen des Makros nicht reagiert, versuche, die Zeile, die die Auswahl in Word trifft, zu debuggen. Manchmal hilft es, die Zeile in kleinere Teile aufzuteilen.


Alternative Methoden

Falls das VBA-Makro nicht die gewünschten Ergebnisse liefert, gibt es alternative Methoden:

  1. RTF-Datei in Word öffnen und kopieren: Öffne die .rtf-Datei in Word, kopiere den Inhalt und füge ihn manuell in Excel ein.

  2. Textdatei erstellen: Benenne die .rtf-Datei in .txt um und öffne sie mit Excel. Dann kannst Du die Daten durch den Textimport in Excel aufteilen.


Praktische Beispiele

  1. Einfacher Import: Verwende das oben genannte VBA-Skript, um eine .rtf-Datei zu importieren, die strukturierte Daten enthält.

  2. Datenverarbeitung: Nach dem Import kannst Du die Daten in Excel weiterverarbeiten, z.B. durch Sortieren oder Filtern.


Tipps für Profis

  • Automatisierung: Wenn Du regelmäßig .rtf-Dateien importierst, kannst Du das Makro anpassen, um mehrere Dateien nacheinander zu verarbeiten.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in Dein Makro ein, um mögliche Probleme beim Öffnen oder Verarbeiten der RTF-Datei zu beheben.

  • Verwendung von Excel Rich Text: Überlege, ob Du das Excel Rich Text Format nutzen möchtest, um die Formatierungen innerhalb der importierten Daten beizubehalten.


FAQ: Häufige Fragen

1. Was ist eine .rtf-Datei?
Eine .rtf-Datei (Rich Text Format) ist ein Dateiformat, das Text mit Formatierungen speichert. Es wird häufig verwendet, um Dokumente zwischen verschiedenen Textverarbeitungsprogrammen auszutauschen.

2. Wie öffne ich eine .rtf-Datei in Excel?
Du kannst die .rtf-Datei direkt in Word öffnen, den Inhalt kopieren und dann in Excel einfügen. Alternativ kannst Du ein VBA-Makro verwenden, um die Datei automatisch zu importieren.

3. Funktioniert das Makro in allen Excel-Versionen?
Das bereitgestellte Makro wurde mit MS Office Professional 2003 getestet. Es sollte jedoch auch in neueren Versionen von Excel funktionieren, solange die Word-Objektbibliothek korrekt referenziert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige