4.3k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

gibt es eine Möglichkeit zu ermitteln, mit welcher Excel-Version eine Datei zuletzt abgespeichert wurde?

LG und schon vorab vielen Dank.
cat

14 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
wozu ist diese Information notwendig.
Man kann es wohl mit VBA unter diese Arbeitsmappe.

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets(1).Range("A1") = Val(Application.Version)
End Sub

machen.

Gruß Hajo
0 Punkte
Beantwortet von silbersurfer Mitglied (545 Punkte)
Hallo

Öffne die Exceldatei mit WinRar oder 7-Zip. Da gibt es einen Ordner "docProps" und darin die Datei "app.xml". Diese app.xml mit einem Texeditor öffnen. Und darin steht die Version. Version 14.xxxx wäre z.B. Excel 2010. Dieses Verfahren funktioniert ab Excel 2007.

Gruß
0 Punkte
Beantwortet von
Wir haben einen Excelimport und bei manchen Dateien ein Problem. Es handelt sich um eine Excelvorlage, die User mit Daten befüllen müssen. Die Dateien werden zurückgeschickt und importiert. Da wir ansonsten keine Auffälligkeiten gefunden haben, wollten wir überprüfen, ob es sich bei den problematischen Dateien vielleicht um Dateien handelt, die mit Excel 2007 und nicht mit 2010 abgespeichert wurden.

Vielen Dank schon mal für eure Vorschläge, ich werde es mir morgen ansehen.

LG
cat
0 Punkte
Beantwortet von
Hab's doch gleich noch probiert.

@Hajo: Ich glaube, du gibst die Excel-Version aus, mit der man die Datei aktuell geöffnet hat.

@silbersurfer: Das sieht sehr gut aus. Kann man auf diese Eigenschaften mit VBA zugreifen?

LG
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

gruss nighty

Sub Version_()
v = "Fileformat:" & Chr(10) _
& " 16 Excel 2" & Chr(10) _
& " 29 Excel 3" & Chr(10) _
& " 33 Excel 4" & Chr(10) _
& " 39 Excel 5/95" & Chr(10) _
& "-4143 Excel 97/2000" & Chr(10) _
& " 43 Excel 2002/XP" & Chr(10)
MsgBox v & Chr(10) & Chr(10) & "Diese Arbeitsmappe: " & _
ActiveWorkbook.FileFormat, vbInformation
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein Ansatz zum Automatismus

If ActiveWorkbook.FileFormat = xlWK3 Then
ActiveWorkbook.SaveAs fileFormat:=xlNormal
End If


unter hilfe findest du bei fileformat entsprechende Auswahl

gruss nighty
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
NEIN, nicht bei meiner Aktion.

Gruß Hajo
0 Punkte
Beantwortet von
Danke an alle.

@Hajo: Dann hab' ich vielleicht was falsch gemacht. Ich hab' jetzt nur den Wert in einer Messagebox ausgegeben. Aber bei einer Datei, die sicher mit 2010 gespeichert wurde (was in der app.xml auch so steht) bekomme ich - wenn ich sie mit Excel 2013 öffne - 15 zurück.

@nighty: Danke, aber es handelt sich auf jeden Fall um Dateien ab Excel 2007

@silbersurfer: Dein Ansatz hat mich am weitesten gebracht, wobei damit aufgefallen ist, dass es Dateien gibt, die nicht den "normalen" Aufbau mit docProps, xl, ... haben, sondern EncryptionInfo, EncryptedPackage, und DataSpaces. Das sind auch genau die, die Probleme verursachen.

LG
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
15 ist doch korrekt bei 2013.

Gruß Hajo
0 Punkte
Beantwortet von
Ja, aber als letztes wurde die Datei mit Office 2010 gespeichert - das ist genau der Punkt.


Zum Thema EncryptionInfo, EncryptedPackage, und DataSpaces - sieht normal so aus, wenn die Datei einen Kennwortschutz zum Öffnen hat - hat sie aber nicht ...
...