AW: VBA: Auslesen der Dateieigenschaften
André
Nochmal Moin,
ich habe nun noch ein wenig nachgeforscht und dabei herausbekommen, daßder Fehler doch noch etwas anders ist. Tatsächlich liest Excel die Dateieigenschaften der aktuelle geöffneten Datei richtig aus. Falsch ist aber, was aus der Datei aus dem Server ausgelesen wird.
Hier nochmal das Script, mit dem ich das mache:
Option Explicit
Sub auto_open()
' Konstanten und Variablen definieren
Const STRFOLDER As String = "\\server\pfad" ' Pfad zu den aktuellen Dateien
Const STRFILE As String = "datei.xlsm" ' Dateiname
Dim objShell, objFolder, objFile As Object ' Pfad- und Dateiobjekte
Dim fltVersionNeu, fltVersionAktuell As Integer ' Versionsnummern
Dim strKommentarNeu As String ' Neuerungen in aktueller Version
Dim Antwort As Integer ' Rückgabewert von Messageboxen
' Prüfen, ob Serverdatei gelesen werden kann
If Dir(STRFOLDER & "\" & STRFILE, 16) = "" Then
' Serverdatei kann nicht gelesen werden -> Script beenden
Exit Sub
End If
' Variablen zuweisen
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(STRFOLDER)
Set objFile = objFolder.ParseName(STRFILE)
' Versionsinformationen auslesen
fltVersionAktuell = ActiveWorkbook.BuiltinDocumentProperties(18)
fltVersionNeu = objFolder.GetDetailsOf(objFile, 12)
strKommentarNeu = objFolder.GetDetailsOf(objFile, 14)
' Prüfen, ob aktuelle Datei eine andere Versionsnummer hat als die Datei auf dem Server
If fltVersionAktuell < fltVersionNeu Then
' Auf dem Server liegt eine neuere Datei vor
Antwort = MsgBox("Es gibt eine neue Version dieser Datei.", 308, "Versionshinweis")
ElseIf fltVersionAktuell > fltVersionNeu Then
' auf dem Server liegt eine ältere Datei vor. Dies darf eigentlich nicht vorkommen
Antwort = MsgBox("Ungültige Versionsnummer.", 276, "Versionshinweis")
End If
' Datei wieder schließen, falls Antwort NEIN geklickt wurde
If Antwort = vbNo Then
ActiveWorkbook.Close
Exit Sub
End If
End Sub
Der Witz ist nun, wenn ich dieses Script in einem Excel unter Windows XP starte, dann sind die Eigenschaften 12 und 14 mit den Feldern "Kategorien" und "Kommentare" gefüllt.
Rufe ich die selbe Datei aber unter Windows 7 auf, dann sind diese beiden Werte leer. Statt dessen sind in den Felder 23 und 24 nun die Werte aus "Kategorien" und "Kommentare".
Wäre toll, wenn jemand eine Idee für mich hätte.
Dazu noch eine Frage: ist es möglich, per VBA den Wert einer bestimmten Zelle einer anderen Datei auszulesen, OHNE daß diese andere Datei dafür geöffnet werden muß?
Gruß, André