Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1784to1788
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
Inhaltsverzeichnis

Schreiben in txt-Datei Zugriff verweiger

Schreiben in txt-Datei Zugriff verweiger
13.10.2020 14:34:01
Nina
Hallo an alle,
zunächst wollte ich allen 'Antwortschreibern' hier mal Danke sagen! In meiner Arbeit habe ich viel mit der Erstellung von Makros zu tun und bin immer wieder begeistert, dass in diesem Forum wirklich jede Frage unglaublich kompetent und nett beantwortet wird!
Nun zu meinem Problem :)
Ich habe eine Mappe mit vielen Tabellenblättern und möchte nun eine .txt-Datei erstellen und dort nach einem bestimmten Muster die Daten aus den verschiedenen Tabellenblättern zusammenführen und speichern.
Leider scheitere ich gerade bereits beim Öffnen meiner erstellten .txt-Datei, da immer der Fehler "Laufzeitfehler 70 - Zugriff verweigert" erscheint.
Die Datei wird problemlos erstellt, allerdings kann ich sie selbst hinterher anscheinend nicht öffnen. Sie ist nicht schreibgeschützt.
Anbei mein Code und schonmal vielen Dank für eure Mühe!
Private Sub DateiErstellen()
'** Dieses Modul erstellt die TXT-Datei ev_rules, in welcher die Bewertungen der EF aufgelistet  _
werden
Dim Pfad As String
Dim Zeilenanzahl As Integer
Dim myDatei As String
Dim PfadDatei As String
Pfad = ThisWorkbook.Sheets("Einstellungen").Range("F" & 4).Value '* Pfad zur Erstellung der  _
Datei
myDatei = "ev_rules_test"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextfile(Pfad & myDatei & ".txt")
PfadDatei = Pfad & myDatei & ".txt" '* Pfad der Datei
Dim array_(), varItem As Variant
Dim worksheet_ As Worksheet
Dim path_ As String
Dim file_ As Long
path_ = PfadDatei
Set worksheet_ = ThisWorkbook.Sheets("EF")
array_ = ValueArray(worksheet_)
file_ = FreeFile
Open PfadDatei For Output As #file_
For Each varItem In array_
Print #file_, varItem
Next varItem
Close #file_
End Sub

Private Function ValueArray(ByVal ws As Worksheet) As Variant
Dim array_() As Variant
Dim i As Long
Dim Zeilenanzahl As Integer
Zeilenanzahl = Worksheets("EF").Cells(Rows.Count, 4).End(xlUp).Row '* Nur fehler mit  _
Ereignistext unter "D"
ReDim array_(489)
With ws
For i = 2 To Zeilenanzahl
array_(i - 2) = .Cells(i, 1).text & ";" & _
.Cells(i, 4).text
Next i
End With
ValueArray = array_
Erase array_
End Function

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreiben in txt-Datei Zugriff verweiger
13.10.2020 14:49:31
Nepumuk
Hallo Nina,
schmeiß die beiden Zeilen raus. Die Textdatei wird mit dem Open-Statement automatisch erzeugt wenn sie noch nicht existiert.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextfile(Pfad & myDatei & ".txt")
Gruß
Nepumuk
AW: Schreiben in txt-Datei Zugriff verweiger
13.10.2020 18:08:00
Nina
Hallo Nepumuk,
entschuldige, dass ich mich erst so spät zurück melde, aber anscheinend habe ich den Beitrag zwei mal geposted und ich habe das nicht bemerkt :-)
Vielen lieben Dank! Jetzt schreibt er ohne Murren in die Datei!!!
Viele Grüße aus Nürnberg
Nina
AW: Schreiben in txt-Datei Zugriff verweiger
13.10.2020 14:56:31
Rudi
Hallo,
Private Sub DateiErstellen()
'** Dieses Modul erstellt die TXT-Datei ev_rules, in welcher die Bewertungen der EF aufgelistet  _
_
werden
Dim Pfad As String
Dim myDatei As String
Dim PfadDatei As String
Dim worksheet_ As Worksheet
Dim file_ As Long
Pfad = ThisWorkbook.Sheets("Einstellungen").Range("F" & 4).Value '* Pfad zur Erstellung der  _
Datei
If Right(Pfad, 1)  "\" Then Pfad = Pfad & "\"
myDatei = "ev_rules_test"
PfadDatei = Pfad & myDatei & ".txt" '* Pfad der Datei
Set worksheet_ = ThisWorkbook.Sheets("EF")
file_ = FreeFile
Open PfadDatei For Output As #file_
Print #file_, Join(ValueArray(worksheet_), vbCrLf)
Close #file_
End Sub
Private Function ValueArray(ByVal ws As Worksheet) As Variant
Dim array_() As Variant
Dim i As Long
Dim Zeilenanzahl As Integer
Zeilenanzahl = Worksheets("EF").Cells(Rows.Count, 4).End(xlUp).Row '* Nur fehler mit _
Ereignistext unter "D"
ReDim array_(Zeilenanzahl - 2)
With ws
For i = 2 To Zeilenanzahl
array_(i - 2) = .Cells(i, 1).Text & ";" & _
.Cells(i, 4).Text
Next i
End With
ValueArray = array_
End Function

Gruß
Rudi
Anzeige
AW: Schreiben in txt-Datei Zugriff verweiger
13.10.2020 18:10:48
Nina
Hallo Rudi,
vielen Dank für deine Lösung und die "Backslash-Prüfung", daran hatte ich noch gar nicht gedacht.
Funktioniert einwandfrei!
Viele Grüße aus Nürnberg
Nina

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige