Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

txt-File erzeugen, Code verbessern

txt-File erzeugen, Code verbessern
05.02.2005 20:35:09
Christian
Hallo Excel-Freunde,
ich möchte beim Ablauf eines VBA-Programms bestimmte Daten (Datum, Uhrzeit, Fehlermeldungen, etc.) in eine Txt-Datei schreiben.
- wenn die Datei nicht existiert, soll sie erzeugt werden.
- in der ersten Zeile der Txt-Datei soll eine Spalten-Überschrift stehen.
- die eigentlichen Daten sollen jeweils angehängt werden (also bei jedem ausführen des Codes in einer neue Zeile geschrieben werden).
Im Archiv hab ich schon das ein und andere gefunden und daraus das folgende "zusammengebastelt". Das funktioniert auch soweit. Es kommt mir aber eben noch sehr umständlich vor, den Txt-File vier mal öffnen zu müssen. (siehe Code)
Meine Frage: kann mir jemand helfen, den Code zu optimieren?
vielen Dank für eure Unterstützung
Gruß
Christian
Option Explicit

Sub LogFile()
Dim strFile As String, strTxt As String
Dim strCaption As String, strTmp As String
Dim i As Byte
strCaption = "Col1;Col2;Col3"             'Bsp: Überschrift
strTxt = "Data1;Data2;Data3"              'Bsp: Daten
strFile = ThisWorkbook.Path & "\Test.log"
'wenn Datei nicht existiert, dann erzeugen und Überschrift einsetzen:
If Dir(strFile) = "" Then
Open strFile For Append As #1
Print #1, strCaption
Close #1
End If
'Wenn Datei existiert, aber keinen Eintrag hat, dann Überschrift einsetzen:
'auf Eintrag prüfen:
Open strFile For Input As #1
Do While Not EOF(1)
Input #1, strTmp
i = i + 1
If i = 2 Then Exit Do
Loop
Close #1
'Überschrift einsetzen:
If i = 0 Then
Open strFile For Append As #1
Print #1, strCaption
Close #1
End If
'strTxt anhängen:
Open strFile For Append As #1
Print #1, strTxt
Close #1
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: txt-File erzeugen, Code verbessern
06.02.2005 10:29:19
Josef
Hallo Christian!
Sollte funzen!


      
Sub LogFile()
Dim strFile As String, strTxt As String
Dim strCaption As String, strTmp As String
Dim i As Byte
strCaption = 
"Col1;Col2;Col3"             'Bsp: Überschrift
strTxt = "Data1;Data2;Data3"              'Bsp: Daten
strFile = ThisWorkbook.Path & "\Test.log"
   
Open strFile For Append As #1
   i = LOF(1)
      
If i = 0 Then
         
Write #1, strCaption
      
End If
   
Write #1, strTxt
   
Close #1
End Sub 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
vielen Dank
06.02.2005 14:02:53
Christian
Hi Sepp,
so einfach,wenn man's weiß.
Ich habe allerdings "Write #1" durch "Print #1" ersetzt, um die Einträge im Text-File nicht in Anführungszeichen zu erhalten. Welche weiteren Konsequenzen das hat, werd ich mir mal in der VBA-Hilfe anlesen.
Und ausserdem i jetzt als "Long" deklariert, da lt. VBA-Hilfe LOF einen Wert vom Typ Long zurückgibt. (die Deklaration als Byte stammt ja noch aus meinem ersten Versuch ...)
vielen Dank für deine Hilfe
wie immer hervorragend
Gruß
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige