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

Forumthread: Daten in Textdatei schreiben und wieder auslesen

Daten in Textdatei schreiben und wieder auslesen
Maxer
Hallo Forum (hallo Hajo),
vielleicht könnt ihr/du mir nochmals helfen. Durch den Abstruz zweier großer Exceldatenbanken mit viel VBA musste ich mir einen weiteren Schritt überlegen, wie ich meine Projekte in Zukunft noch besser vor solch einem Harakierie schützen kann. Da kam mir die Idee, die wichtigsten Daten aus den Exceltabellen in Textdateien zu sichern. Nur habe ich das bis heute noch nie machen müssen. Deshalb meine Frage:
(wie ich eine Textdatei erzeugen kann und wie ich diese wieder auslesen muss weiß ich)
wie bekomme ich es hin dass wenn neue Datensätze vorhanden sind das diese in der Textdatei angefügt werden?
Gruß Ron
Anzeige
AW: Daten in Textdatei schreiben und wieder auslesen
10.05.2010 11:16:55
Beverly
Hi Ron,
in diesem Fall würde ich die Textdatei einfach neu schreiben und damit die alte überschreiben,


AW: Daten in Textdatei schreiben und wieder auslesen
10.05.2010 12:01:04
Maxer
Hallo Karin,
im Grund hast du recht, aber es gibt da folgendes Problemchen. Die Daten die in der Textdatei dann schon stehen stehen nicht mehr in der Exceldatenbank. Dies würde ja dann bedeuten ich müsste die alte txt.Datei erst einlesen, die neuen Datensätze anfügen, die alte txt.Datei irgendwie löschen (keine Ahnung wie) um sie dann wieder neu speichern und füllen zu können.
Richtig?!?
Gruß Ron
Anzeige
AW: Daten in Textdatei schreiben und wieder auslesen
10.05.2010 12:27:30
Beverly
Hi Ron,
die Vorgehensweise stimmt so in etwa - nur musst du die alte txt-Datei nicht löschen, denn wenn du sie mit den geänderten Daten wieder speicherst, ist sie sowieso weg ;-), da sie ja überschrieben wird.


Anzeige
AW: Daten in Textdatei schreiben und wieder auslesen
10.05.2010 13:13:43
Maxer
noch mal ne kurze Frage. Gibt es eigentlich noch ne andere Methode / Art meine Daten zu sichern außer eine Kopie irgendwo anders zu speichern? Wie machst du das in der Praxis?
AW: Daten in Textdatei schreiben und wieder auslesen
10.05.2010 13:43:07
Martin
Hallo Maxer,
ich mache mir ein Backup als Textdatei, das aller paar Minuten erneuert wird. Ich könnte das Backup natürlich auch als Excel-Datei machen, aber mir dauert der Speichervorgang von Excel (Dateigröße knapp 3 MB) zu lange. Es nervt mich einfach, wenn Excel einige Sekunde aufgrund der Autospeicherung nicht reagiert, möchte aber auf ein Backup meiner Daten nicht verzichten. Den Namen der Backup-Dateien könntest du doch forlaufend nummerieren, wenn du auf einen bestimmten Zwischenstand zurückgreifen möchtest. Du solltest dabei nur sichergehen, dass es nicht zu viele Backup-Dateien werden.
Viele Grüße
Martin
Anzeige
...Ergänzung
10.05.2010 13:50:37
Martin
Hallo Maxer,
was noch wichtig ist zu erwähnen: Ich sichere ausschließlich meine Zellinhalte als CSV (also Text und Formeln), verzichte beim Backup also auf Formatierungen (wie Schrift- und Zellenfarbe, Schriftart und - größe usw.). Falls dir das wichtig sein sollte, wäre eine xml- oder html-Konvertierung eventuell interessant, denn hier werden weitere Informationen zu den Zellen gespeichert.
Viele Grüße
Martin
Anzeige
AW: ...Ergänzung
10.05.2010 16:29:14
Maxer
Hallo Martin,
danke für deine Rückmeldung. Mir geht es haupsächlich darum Werte zu sichern, denn die notwendigen Berechnungen und Formatierungen passieren alle per VBA und UF.
Aber wie kann ich denn einen Zyklus einbauen (so beschreibst du es ja) dass die Datenbank alle 3 min die Daten wegsichert?
Gruß Ron
Anzeige
AW: ...Ergänzung
10.05.2010 21:22:12
Martin
Hallo Ron,
über folgendes Prinzip kannst du eine eigene Datensicherung realisieren:

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:03:00"), "DataSave"
End Sub
Sub DataSave()
'An dieser Stelle sollen die Tabellendaten in der CSV-Datei gesichert werden
Application.OnTime Now + TimeValue("00:03:00"), "DataSave"
End Sub

Viele Grüße
Martin
Anzeige
AW: ...Ergänzung
10.05.2010 16:46:39
Ramses
Hallo
"...Ich sichere ausschließlich meine Zellinhalte als CSV (also Text und Formeln), .."
Eine CSV kann KEINE Formeln speichern
Gruss Rainer
...dem widespreche ich!
10.05.2010 21:40:39
Martin
Hallo Rainer,
selbstverständlich können neben dem Text auch Formeln in eine CSV-Datei exportiert werden, wenn alle Zellen entsprechend mit Cells(i,j).Formula ausgelesen werden. Eine HTML-Datei ist wie eine CSV-Datei auch "nur" eine Textdatei.
Hier mal ein CSV-Beispiel (mit Semikolon-Trenner) mit Formel: https://www.herber.de/bbs/user/69530.txt
Viele Grüße
Martin
Anzeige
AW: ...dem widespreche ich!
11.05.2010 08:41:09
Maxer
Vielen Dank für die Hilfe. ich habe das ganze schon umgesetzt und es funktioniert tadellos.
Tolles Forum hier!!!!!!! Gibt es auch nicht so oft, dass wenn man eine Frage hat diese auch schnell beantwortet wird in einer sehr guten Qualität.!!!!!
Gruß Ron
Wer sichert so ?
11.05.2010 14:14:18
Ramses
Hallo
Das ist aber schon weit hergezogen :-)
Du wirst mir aber zusichern, dass kein normaler Anwender seine Tabelle in dieser Weise sichert und diese Variante auch nicht vorausgesetzt werden kann.
Dazu müsste eine parallele Tabelle erstellt werden in der alle spezifischen Formeln in einer Tabelle exakt so abfragt, und die Zellen in denen keine Formel steht mit einer entsprechenden "=Cells(i,j).Value" belegt, da sonst in er entsprechenden Zelle keine Wert auftauchen.
Der Import muss entsprechend mit einem anderen Makro erfolgen der die Formeln dann wieder
Ganz abgesehen davon, dass hier nur immer eine Tabelle gesichert werden kann und nicht die ganze Mappe, mit evtl. abhängigen Daten, macht diese Art der "Datensicherung" in meinen Augen keinen Sinn.
Der Zusammenhang HTML und CSV ist für mich in diesem Frage-Kontext nicht zu erkennen.
Gruss Rainer
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten in Textdatei schreiben und wieder auslesen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“, wähle „Einfügen“ und dann „Modul“.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub TextdateiSchreiben()
       Dim DateiName As String
       Dim DateiNummer As Integer
       DateiName = "C:\Pfad\zu\deiner\Datei.txt"
       DateiNummer = FreeFile
    
       Open DateiName For Append As DateiNummer
       Print #DateiNummer, "Neuer Datensatz" ' Hier den gewünschten Text einfügen
       Close DateiNummer
    End Sub
  4. Textdatei erstellen: Führe das Makro TextdateiSchreiben aus, um Daten in die Textdatei zu schreiben.

  5. Daten auslesen: Verwende den folgenden Code, um Daten aus der Textdatei zu extrahieren:

    Sub TextdateiAuslesen()
       Dim DateiName As String
       Dim DateiNummer As Integer
       Dim Zeile As String
       DateiName = "C:\Pfad\zu\deiner\Datei.txt"
       DateiNummer = FreeFile
    
       Open DateiName For Input As DateiNummer
       Do While Not EOF(DateiNummer)
           Line Input #DateiNummer, Zeile
           Debug.Print Zeile ' Hier kannst du die Daten weiterverarbeiten
       Loop
       Close DateiNummer
    End Sub

Häufige Fehler und Lösungen

  • Fehler: "Datei kann nicht gefunden werden"
    Lösung: Überprüfe den Pfad zur Datei. Stelle sicher, dass der angegebene Ordner existiert und die Datei dort gespeichert ist.

  • Fehler: "Zugriffsverletzung"
    Lösung: Stelle sicher, dass die Datei nicht von einem anderen Programm geöffnet ist. Schließe alle Anwendungen, die die Datei möglicherweise verwenden.


Alternative Methoden

Eine alternative Methode, um Daten zu sichern, besteht darin, die Daten als CSV-Datei zu speichern. Hierbei kannst du auch Formeln als Text in die Datei schreiben. Der Vorteil von CSV ist, dass diese Dateien von vielen Anwendungen unterstützt werden.

Sub CSVSchreiben()
    Dim DateiName As String
    Dim DateiNummer As Integer
    DateiName = "C:\Pfad\zu\deiner\Datei.csv"
    DateiNummer = FreeFile

    Open DateiName For Output As DateiNummer
    Print #DateiNummer, "Wert1;Wert2;Wert3"
    Close DateiNummer
End Sub

Praktische Beispiele

  • Daten täglich sichern: Du kannst einen Timer erstellen, um die Daten automatisch alle paar Minuten zu sichern. Hier ist ein Beispiel:

    Private Sub Workbook_Open()
       Application.OnTime Now + TimeValue("00:03:00"), "TextdateiSchreiben"
    End Sub
  • Daten aus mehreren Zellen exportieren: Wenn du mehrere Zellen in eine Textdatei schreiben möchtest, kannst du eine Schleife verwenden:

    Sub MehrereDatenSchreiben()
       Dim i As Integer
       Dim DateiNummer As Integer
       Dim DateiName As String
       DateiName = "C:\Pfad\zu\deiner\Datei.txt"
       DateiNummer = FreeFile
    
       Open DateiName For Append As DateiNummer
       For i = 1 To 10 ' Beispiel: 10 Zellen
           Print #DateiNummer, Cells(i, 1).Value
       Next i
       Close DateiNummer
    End Sub

Tipps für Profis

  • VBA Textdatei schreiben: Verwende Open ... For Append für das Hinzufügen von Daten, ohne die vorhandenen Daten zu überschreiben.
  • Text aus Datei extrahieren: Stelle sicher, dass du die Daten, die du extrahierst, in einem geeigneten Format verarbeitest, um die Lesbarkeit zu erhöhen.
  • Backup-Strategie: Überlege dir eine regelmäßige Backup-Strategie, um deine Daten zu schützen, z.B. durch Speichern in unterschiedlichen Formaten (CSV, TXT).

FAQ: Häufige Fragen

1. Was sind Textdateien?
Textdateien sind einfache Dateien, die nur Text enthalten. Sie werden häufig verwendet, um Daten zu speichern und können einfach mit einem Texteditor bearbeitet werden.

2. Wie kann ich Formeln in eine Textdatei schreiben?
Du kannst Formeln in eine Textdatei exportieren, indem du die Formel als Text speicherst, z.B. durch Cells(i, j).Formula.

3. Ist es sicher, Daten in Textdateien zu speichern?
Textdateien sind einfach zu handhaben, aber sie bieten keine Sicherheit. Stelle sicher, dass du regelmäßige Backups machst und deine Daten an einem sicheren Ort speicherst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige