Microsoft Excel

Herbers Excel/VBA-Archiv

Schreiben in txt-Datei Zugriff verweiger

Betrifft: Schreiben in txt-Datei Zugriff verweiger von: Nina Nina
Geschrieben am: 13.10.2020 14:52:11

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

Betrifft: doppelt owT
von: Rudi Maintaire
Geschrieben am: 13.10.2020 14:57:07



Betrifft: AW: doppelt owT
von: Nina Nina
Geschrieben am: 13.10.2020 17:48:26

Hallo,
danke erstmal, aber was genau bedeutet "doppelte owt"?

Betrifft: AW: doppelt owT
von: Werner
Geschrieben am: 13.10.2020 17:58:46

Hallo,

na ja, doppelt heißt halt doppelt. Du hast den gleichen Beitrag hier zweimal eingestellt.

Und owt = ohne weiteren Text

In deinem ersten Beitrag hast du Antworten - darauf reagiert hast du aber nicht.

Gruß Werner

Betrifft: AW: doppelt owT
von: Nina Nina
Geschrieben am: 13.10.2020 18:04:55

Oh man, das tut mir leid.
Das ist erst mein zweiter Beitrag und ich komme mit der Oberfläche des Forums noch nicht so klar :-)

Dann schau ich mal, wo ich den andere Beitrag jetzt hochgeladen habe.

Viele Grüße
Nina