PDA

Vollständige Version anzeigen : Protokolldatei erstellen


Aang39
25.07.2012, 05:29
Hallo Gemeinde ....

.... zuerst einmal ein dickes Lob an dieses Forum !!!! :)

.........................................................................

Nun aber zu meiner Frage.

Ich habe ein Excel Formular mit diversen UserFormen.
Wenn ich ich die UserForm1 ausgefüllt habe und den CommandButton "Übernehmen" gedrückt habe, möchte ich das er mir mit Werte aus verschiedenen Zellen eine Protokolldatei erstellt ( in eine Textdatei ).

Ich hab auch schon was gefunden und das überarbeitet ( da ich so garkeinen Plan habe / hatte wie es gehen sollte )

Dim Textdatei As String, var1 As String, var2 As String, var3 As String
Textdatei = "C:\Test\Protokolldatei.txt"
var1 = Application.Range("GNW!A43")
var2 = Application.Range("GNW!C43")
var3 = Application.Range("GNW!D11")
Open Textdatei For Output Access Write As #1
Write #1, var1, var2, var3
Close #1
End Sub

Das klappt auch soweit .... nun soll er aber nach der nächsten Eingabe, in UserForm1, den Inhalt der gewählten Zellen in die nächste Zeile der Textdatei schreiben.
Also quasi soll er protokollieren welche Formulare erstellt worden sind

"25.07.2012","Torsten","Herne-Eickel",""
"26.07.2012","Torsten","Herne-Wanne",""

Bis jetzt überschreibt er nur immer wieder die erste Zeile.

Was muss ich ändern damit das gewünschte Ziel erreicht wird ?

Vielen Dank im Voraus

Luschi
25.07.2012, 05:58
Hallo Aang39,

ein Beispiel dazu findest Du hier:
http://www.vbarchiv.net/faq/faq_ds_textappend.html
und die passender Erklärung auch gleich dazu!

Gruß von Luschi
aus klein-Paris

Aang39
25.07.2012, 07:34
Danke Luschi ... hat Super geklapt ! :D

Hier mal für alle die es interessiert :

Dim F As Integer
Dim var1 As String, var2 As String, var3 As String, Textdatei As String
Textdatei = "C:\Iso\Regeltausch.txt"
F = FreeFile
var1 = Application.Range("GNW!A43")
var2 = Application.Range("GNW!C43")
var3 = Application.Range("GNW!D11")
Open Textdatei For Append As #F
Print #F, var1, var2, var3
Close #F

Natürlich jetzt für meine Zwecke angepasst !

Aang39
25.07.2012, 17:07
Ich mach den Tread noch mal auf, da ich noch eine Frage habe und dafür nicht ein neues Thema anfangen will.

Also, er holt sich ja jetzt die Werte aus den angegebenen Zellen.

var1 = Application.Range("GNW!E16")

Gibt es die Möglichkeit das er die Zellen untereinander weg arbeitet (die letzte Zelle ist E22) :

E16
E17
... E22 , z.B.

Bis jetzt bekomm ich das nur so geregelt :

var1 = Application.Range("GNW!E16") & "" &Application.Range("GNW!E17") .. usw.

wenn ich mit strZelle arbeite bringt er mir die Meldung "Kann verbundene Zellen nicht ändern" :(

Noch besser wäre wenn er das mit 2 Spalten machen würde - z.b. C & E - und diese dann abwechselnd in die Txt einträgt.( incl. Abstände damit ich die Daten wieder einlesen kann)

C=Stückzahl
E=Artikel

Die Zellen sind auch verbunden ... anders bekomm ich das Layout des
Formulars nicht hin, da einige Leute es noch gedruckt haben wollen :mad:

Vielen liebe Dank im Voraus