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

SaveAs ... versionsabhängige Codierung nötig?

SaveAs ... versionsabhängige Codierung nötig?
03.02.2014 00:28:43
Dietmar
Hallo in die Runde,
Nachfolgender Code soll eine Datei, die als Downlodd zur Verfügung gestellt wird beim Öffnen in einen zu erzeugenden Ordner unter einem neuen Namen ablegen. Wenn der Ordner bereits existiert und die Datei dort auch bereits existiert, soll die Downloaddatei einfach geöffnet werden, ohne dass etwas geschieht.
Unter xl2003 gibt es keine Probleme auch nicht unter xl2010.
Unter xl2007 stürzt Excel ständig ab und unter xl2013 habe ich den Eindruck, dass Excel sich schwer tut, da der Vorgang recht lange dauert.
Was könnte das Probem sein? Gibt es versionsrelevante SaveAs-Methoden?
Könnte oder müsste man dem Code ggf. mit eine xl-Versions-Prüfung mit
unterschiedlichen SaveAs-Codierungen voranstellen?
Da die Datei von verschiedenen Usern mit unterschiedlichen xl-Versionen (ab xl2003) verwendet wird, ist es erforderlich, dass sie als .xls gespeichert wird.
Hat jemand eine Idee?
Vielen Dank vorab!
Dietmar aus Aachen
Private Sub Workbook_Open()
'Beim Öffnen der Datei 'TestDatei_Download' erfolgt die automatische Speicherung
' als Datei 'TestDatei' im zu erzeugenden Ordner 'Testordner' auf Laufwerk C
Application.ScreenUpdating = False
If Dir("C:\Testordner", vbDirectory) = "" Then
MkDir ("C:\Testordner")
MsgBox "Der Testordner wurde angelegt"
Else
End If
Application.DisplayAlerts = False
If Dir("C:\Testordner\Testdatei.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs Filename:="C:\Testordner\Testdatei.xls"
MsgBox "Die Datei wurde als 'Testdatei' angelegt."
Else
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
ActiveWorkbook.Protect Structure:=True, Windows:=False
Application.Calculation = xlCalculationManual
Application.CellDragAndDrop = False
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SaveAs ... versionsabhängige Codierung nötig?
03.02.2014 08:08:45
fcs
Hallo Dietmar,
eine Vorgabe für das Dateiformat für Excel Version 2007 und neuer ist zu empfehlen.
Warum die Verarbeitung bei einigen Excelversionen Probleme macht?
Da der Berechnungsmodus am Ende auf Manuel gesetzt wird kann es jedoch sein, dass die Neuberechnung der Date beim Öffnen unterschiedlich glatt läuft.
Gruß
Franz
Private Sub Workbook_Open()
'Beim Öffnen der Datei 'TestDatei_Download' erfolgt die automatische Speicherung
' als Datei 'TestDatei' im zu erzeugenden Ordner 'Testordner' auf Laufwerk C
Application.ScreenUpdating = False
If Dir("C:\Testordner", vbDirectory) = "" Then
MkDir ("C:\Testordner")
MsgBox "Der Testordner wurde angelegt"
Else
End If
Application.DisplayAlerts = False
If Dir("C:\Testordner\Testdatei.xls", vbDirectory) = "" Then
If Val(Left(Application.Version, 2)) 

Anzeige
Herzlichen Dank ...
03.02.2014 10:08:55
Dietmar
Hallo Franz,
lieben Dank.
Bin total gespannt wie es nun laufen wird. Werde etwas Zeit brauchen, es auf den Versionen zu testen. Habe da einen Rechner einer Kollegin im Visier, der besonders intensive Probleme machte; dort ist xl2007 darauf. Wenn es darauf läuft geht's überall :-)
Melde mich dann.
Viele Grüße
Dietmar

Herzlichen Dank ...
03.02.2014 10:08:55
Dietmar
Hallo Franz,
lieben Dank.
Bin total gespannt wie es nun laufen wird. Werde etwas Zeit brauchen, es auf den Versionen zu testen. Habe da einen Rechner einer Kollegin im Visier, der besonders intensive Probleme machte; dort ist xl2007 darauf. Wenn es darauf läuft geht's überall :-)
Melde mich dann.
Viele Grüße
Dietmar

Anzeige
Leider geht's doch nicht ...
03.02.2014 22:18:36
Dietmar
Hallo Franz,
es ist zum ... xl2007 stürzt bei dem Versuch SaveAs auszuführen nach wie vor ab.
Wenn ich die Datei eigenständig in den bereits eingerichteten Ordner speichere (also die SaveAs-Routine umgehe) komme ich ein Stück weiter.
Allerdings stürzt xl2007 dann ab, wenn ich die Datei (nachdem ich ein paar Daten eingetragen habe) einfach speichere.
Hast Du noch eine Idee?
Viele Grüße
Dietmar

AW: Leider geht's doch nicht ...
04.02.2014 08:00:57
Raphael
Hallo Dietmar,
ich hätte noch eine, wobei die Hoffnung nicht sehr gross ist. Versuch mal das SaveAs durch SaveCopyAs zu ersetzten. Da so lediglich eine Kopie der Datei gespeichert (mit ein bisschen Glück mit weniger Versionsspezifischen Anpassungen) wird die schon besteht und der Name ebenfalls immer wieder überschrieben werden kann, sollte der es keine Rolle spielen.
Allerdings habe ich kein Excel 2007 und kann es somit auch nicht testen, aber besser ein Strohhalm....
Gruess
Raphael

Anzeige
AW: Leider geht's doch nicht ...
04.02.2014 10:08:41
fcs
Hallo Dietmar,
meine Anpassung sorgt dafür, dass bei Excel 2007 und neuer die Datei nicht versehentlich im neuen Dateiformat aber mit der Dateierweiterung XLS für das frühere Dateiformat gespeichert wird.
Dies kann bei bestimmten Optionen für das Speichern von Dateien passieren.
Da die Alarme während des Speicherns deaktiviert waren, wurden bei der Ausführung keine entsprechenden Hinweise mehr angezeigt.
Ist die Datei ursprünglich eine 2003-Datei?
Hat die Datei Formatwechsel 2003-2007 vorwärts/rückwärts hinter sich?
Was ist denn in der Datei so alles drin?
Daten, Diagramme, komplexe Berechnungen, VBA-Komponenten
Was passiert, wenn du die Datei im 2007 Format speicherst, schließt, wieder öffnest und dann im 2003er Format speicherst?
Leider alles nur Fragen und Vermutungen, aber es kann durchaus sein, dass die Daten wenn sie zwischen verschiedenen Excelwelten hin und her wandert im VBA.Bereich nicht immer die korrekten Objekt-Bibliotheken gefunden werden und die Datei dann beim Öffnen oder Speichern nicht korrekt funktioniert.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige