Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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

Daten in versteckte TXT schreiben

Daten in versteckte TXT schreiben
25.11.2021 08:46:35
Christian
Hallo liebe Community,
Ich möchte in einem Textfile, das Versteckt wurde, einen oder mehrer Werte hineinschreiben.
Alles funktioniert super, solange ich die Datei nicht verstecke. Dann hängst.
Habe es mit CreateObject und mit Open probiert. Immer das selbe Problem.
Vielleicht könnt ihr mir weiterhelfen.

Sub CreateTXTDatWithOpenName()
Dim fs, a
Dim TXTFile As Integer
Dim strPath As String
Dim strName As String
Dim TXTFileName As String
Dim Dat As String
Dim Benutz As String
strPath = ThisWorkbook.Path
strName = ThisWorkbook.Name
TXTFileName = strPath + "\" + strName + "_Benutzer.txt"
Dat = Format(Now, "YYYY" & "." & "MM" & "." & "DD" & "_" & "hh" & ":" & "mm" & ":" & "ss")
Benutz = Environ$("computername") + "  --  " + Environ$("username") + "  --  " + Dat
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(TXTFileName, True)
a.WriteLine (Benutz)
a.Close
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: OpenTextFile
25.11.2021 08:56:13
Fennek
Hallo,
"CreateTextFile" erstellt eine neue Datei, für ein Log ist es besser mit "OpenTextFile" und der Option "forAppend" (8) zu arbeiten.
mfg
(aus dem Gedächtnis)
AW: OpenTextFile
25.11.2021 09:11:34
Christian
Ich möchte nur eine Zeile mit den Wert eingetragen haben und jedes mal wenn jemand die Excel öffnet, sollte der Wert aktualisiert werden.
Das Problem dahinter ist [Windows sei dank ;-) ]:
Die Excel liegt auf einem Server und wird von unterschiedlichen Leuten bearbeitet.
Beim Öffnen wird die Systemdatei ~[Excelname] im gleichen Ordner erstellt.
Wenn Windows jedoch in den Ruhezustand versetzt wird, wird diese Systemdatei oft gelöscht, die Excel ist jedoch immer noch gesperrt.
Problem: Jetzt weis man nicht, wer die Excel zuletzt offen gehabt hat, weil der Excel-Benutzername in der Systemdatei abgespeichert wird, die es nicht mehr gibt.
Deshalb die Log-Datei nur mit den aktellen Benutzer.
Anzeige
AW: Wer hat eine Exlcel-Datei geöffnet?
25.11.2021 09:44:02
Fennek
Hallo,
um herauszufinden, wer eine Excel-Datei geöffnet hat:
Öffnen dieser Datei mit "ReadOnly"

MsgBox ThisWorkbook.WriteReservedBy
mfg
AW: OpenTextFile
25.11.2021 09:55:31
Nepumuk
Hallo Christian,
teste mal:

Public Sub Test()
Debug.Print GetFileOwner(ActiveWorkbook.Path & "\", ActiveWorkbook.Name)
End Sub
Private Function GetFileOwner(ByVal pvstrFolder As String, ByVal pvstrFilename As String) As String
Dim securityUtility As Object
Dim securityDescriptor As Object
Set securityUtility = CreateObject("ADsSecurityUtility")
Set securityDescriptor = securityUtility.GetSecurityDescriptor(pvstrFolder & pvstrFilename, 1, 1)
GetFileOwner = securityDescriptor.Owner
Set securityDescriptor = Nothing
Set securityUtility = Nothing
End Function
Oder mit deiner Textdatei:

Public Sub CreateTXTDatWithOpenName()
Dim TXTFile As Integer
Dim strPath As String
Dim strName As String
Dim TXTFileName As String
Dim Dat As String
Dim Benutz As String
strPath = ThisWorkbook.Path
strName = ThisWorkbook.Name
TXTFileName = strPath & "\" & strName & "_Benutzer.txt"
Dat = Format(Now, "YYYY" & "." & "MM" & "." & "DD" & "_" & "hh" & ":" & "mm" & ":" & "ss")
Benutz = Environ$("computername") & "  --  " & Environ$("username") & "  --  " & Dat
TXTFile = FreeFile
If Dir$(TXTFileName, vbHidden Or vbSystem) = vbNullString Then
Open TXTFileName For Output As #TXTFile
Else
Call SetAttr(TXTFileName, vbNormal)
Open TXTFileName For Append As #TXTFile
End If
Print #TXTFile, Benutz
Close #TXTFile
Call SetAttr(TXTFileName, vbHidden Or vbSystem)
End Sub
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige