ich habe ein Makro erstellt, dass mir eine gewünschte Excel-Datei öffnet und dort einige Änderungen vornimmt. Nun passiert es immer wieder, dass diese Datei dann besetzt ist. Dies fange ich nun mit einer "IsFileOpen"-
Function ab. Dem User möchte ich nun gleich noch mitteilen wer gerade die Datei bearbeitet. Dazu habe ich folgende
Function im Internet gefunden:
Function LastUser(strFileName As String) As String
Dim strText As String
Dim strFlag1 As String, strFlag2 As String
Dim i As Integer, j As Integer
strFlag1 = Chr(0)
strFlag2 = Chr(32) & Chr(32)
Open strFileName For Binary As #1
strText = Space(LOF(1))
Get 1, , strText
Close #1
j = InStr(1, strText, strFlag2)
i = InStrRev(strText, strFlag1, j) + Len(strFlag1)
LastUser = Mid(strText, i, j - i)
End Function
diese funktioniert soweit ganz gut, solange ich die Formel in einer Excel-Zelle wie folgt eingebe "=LastUser(c:\test.xls)".
Nun möchte ich aber gerne das Ergebnis dieser
Function im VBA-Code einbauen. Geht dass?
Habs bis jetzt so gelöst, dass ich z.B. in A1 die Formel einfüge "=LastUser(c:\test.xls)", diese dann einer Variable zuweise "user = cells(1,1)"
und anschliessend die Formel in A1 wieder lösche.
Vermutlich könnte man der "lastuser"-
Function auch den Pfad der Datei fix zuweisen, da es sich immer um die gleiche handelt... hierbei bin ich dann aber VBA-Mässig überfordert.
Vielen Dank für Eure Hilfe