Anzeige
Archiv - Navigation
1512to1516
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

FileFormat:=56 (xlExcel8) erzwingen

FileFormat:=56 (xlExcel8) erzwingen
20.09.2016 13:07:43
Zacharias
Liebe hilfreiche Excel-Gemeinde,
nachdem Ihr mir schon vor Jahren immer wieder bei kniffligen Problemen geholfen habt,
würde ich mich über den ein oder anderen Tipp auch heute wieder freuen.
Ich habe eine Excel-Datei die als Formular dient und zigfach in ein firmeninternes Dokumentenmanagmentsystem eingelesen werden muß.
Excel-Version der Firma ist 2010. Das Doku-System kann aber nur Excel-Dokumente bis Version 2003 verarbeiten. Wunsch des ist nun, zu verhindern, daß die besagten Formulardateien in einem anderen Format als 2003 gespeichert werden.
Mein Hinweis, daß dies vermutlich nur mittels VBA ginge, was allerdings aktivierte Makros voraussetzt und nicht das Speichern bei deaktiven Makros verhindert, wurde zur Kenntnis genommen, aber die VBA-Lösung soll umgesetzt werden.
Die Lösung sollte sowohl unter 2003, als auch unter 2010 lauffähig sein.
Hier mein erster Versuch:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim varWorkbookName
If SaveAsUI Then
varWorkbookName = Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name, _
fileFilter:="Excel 97-2003-Workbook (*.xls), *.xls")
If Not varWorkbookName = False Then
If Val(Application.Version) 
Das funktioniert auch soweit.
Dummerweise erscheint der "SpeichernUnter"-Dialog auf diese Weise zweimal.
Zuerst mein GetSaveAsFilename-Dialog, nach Abfangen des Speicherwunsches und Korrektur auf erlaubtes FileFormat, und danach der eigentliche vom User über "Speichern Unter" gestartete Dialog, bei dem dann auch nichts mehr eingeschränkt ist.
Nun die Frage: Gibt es evtl. eine Möglichkeit den ursprünglich vom User gestarteten Dialog zu schließen, bzw. zu verhindern, daß dieser überhaupt gezeigt wird?
Oder evtl. eine andere Möglichkeit, auf die ich nicht gekommen bin ?
Auch das Setzen eines DefaultFormates brachte mich nicht weiter, da es die Auswahl anderer Formate nicht verhindert. Aber vielleicht gibt ja eine Möglichkeit ein DefaultFormat zu erzwingen?
If Val(Application.Version) Application.DefaultSaveFormat = xlNormal
Else
Application.DefaultSaveFormat = 56
End If
Vielen Dank vorab an Euch alle und insbesondere an Herber dessen Forum seit Jahren erste Anlaufstelle für mich ist!
Viele Grüße
Zacharias

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: FileFormat:=56 (xlExcel8) erzwingen
20.09.2016 13:14:54
Nepumuk
Hallo,
teste mal:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim varWorkbookName
    If SaveAsUI Then
        varWorkbookName = Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name, _
            fileFilter:="Excel 97-2003-Workbook (*.xls), *.xls")
        If Not varWorkbookName = False Then
            Application.EnableEvents = False
            If Val(Application.Version) <= 11 Then ' bis Version 2003
                ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=xlNormal
            Else
                ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=56
            End If
            Application.EnableEvents = True
        End If
        Cancel = True
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: FileFormat:=56 (xlExcel8) erzwingen
20.09.2016 13:20:05
Daniel
Hi
jedes "Before"-Eventmarko, welches abläuft, bevor die aufrufende Aktion ausgeführt wird, enthält die Systemvariable CANCEL.
Wenn man die Zuweisung: Cancel = True in den Code einfügt, wird die aufrufende Aktion (also in deinem Fall das Speichern) nicht mehr ausgeführt.
Gruß Daniel
AW: FileFormat:=56 (xlExcel8) erzwingen
20.09.2016 13:30:06
Zacharias
Danke Nepumuk, danke Daniel
das ist ja hier wie bei der Formel 1, mit der Antwortgeschwindigkeit ;-) !!!
"Cancel = True"
Das ist genau das, was ich suchte !
Vielen Dank und einen schönen Tag Euch beiden!
Zacharias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige