Discussion:
Dateiformat beim Speichern mittels VBA vorgeben
(zu alt für eine Antwort)
Steffen
2006-03-15 12:52:46 UTC
Permalink
Hallo NG!

Ich stehe vor folgendem Problem. Ich möchte beim Speichern einer
Arbeitsmappe den Dateityp vorgeben, momentan sieht die Anweisung dazu
folgendermaßen aus:

Application.Dialogs(xlDialogSaveAs).Show(sFile, xlWorkbookNormal)

Das Speichern unter Dialogfeld wird angezeigt, damit der Anwender das
Laufwerk aussuchen kann, sfile ist eine Variable.

Leider erhalte ich beim Testen dieser Zeile die Fehlermeldung:
"unable to get the show property of the dialog class"

Ich verwende Excel 2002, SP3, englisch.

Hat jemand eine Idee, wie ich dennoch das Fileformat auf *.xls vorgeben
kann??

Gruß und besten Dank für Eure Antwort(en)

Steffen
Julian O.
2006-03-15 14:01:48 UTC
Permalink
Hallo Steffen,

probier mal mit

Application.GetSaveAsFilename("DATEINAME", FileFilter:="Microsoft _
Excel-Arbeitsmappe (*.xls),*.xls")

denk mal wenn man es ins englische übersetzt lautet es in etwa so:

Application.GetSaveAsFilename("DATEINAME", FileFilter:="Microsoft _
Excel-Workbook (*.xls),*.xls")

den genauen namen erfährst du wenn du in Excel auf "Datei -> Speichern
unter" gehst. steht dann in der Combo-Box drin.

hoff das Hilft dir weiter, hatte nämlich auch ein ähnliches Problem

greetz
Julain O.
Julian O.
2006-03-15 14:01:57 UTC
Permalink
Hallo Steffen,

probier mal mit

Application.GetSaveAsFilename("DATEINAME", FileFilter:="Microsoft _
Excel-Arbeitsmappe (*.xls),*.xls")

denk mal wenn man es ins englische übersetzt lautet es in etwa so:

Application.GetSaveAsFilename("DATEINAME", FileFilter:="Microsoft _
Excel-Workbook (*.xls),*.xls")

den genauen namen erfährst du wenn du in Excel auf "Datei -> Speichern
unter" gehst. steht dann in der Combo-Box drin.

hoff das Hilft dir weiter, hatte nämlich auch ein ähnliches Problem

greetz
Julian O.
Steffen
2006-03-15 15:08:37 UTC
Permalink
Post by Julian O.
Hallo Steffen,
probier mal mit
Application.GetSaveAsFilename("DATEINAME", FileFilter:="Microsoft _
Excel-Arbeitsmappe (*.xls),*.xls")
Application.GetSaveAsFilename("DATEINAME", FileFilter:="Microsoft _
Excel-Workbook (*.xls),*.xls")
den genauen namen erfährst du wenn du in Excel auf "Datei -> Speichern
unter" gehst. steht dann in der Combo-Box drin.
hoff das Hilft dir weiter, hatte nämlich auch ein ähnliches Problem
greetz
Julian O.
Hi Julian,

vielen Dank für Deine Antwort, Deine Lösung hat den Nachteil, dass die
Datei nicht wirklich gespeichert wird sondern nur als Wert zur
Weiterverarbeitung "zwischengespeichert" wird. Ich kann bei meinem Code
z.B. eingeben "xlExcel7", das funktioniert ohne Probleme. Ich habe auch
gelesen, dass die Auswahl der xlfileformat Eigenschaften abhängig von
der jeweiligen Sprache der Excel Version sein soll.

Gruß Steffen
Julian O.
2006-03-15 15:32:25 UTC
Permalink
Hallo Steffen,

ich hab es nochmals ausprobiert und muss dir recht geben (hatte es
vorher nicht kontrolliert).

hoff dir schreibt noch wer eine hilfreichere antwort
greetz
Julian
Steffen
2006-03-15 16:01:16 UTC
Permalink
Post by Julian O.
Hallo Steffen,
ich hab es nochmals ausprobiert und muss dir recht geben (hatte es
vorher nicht kontrolliert).
hoff dir schreibt noch wer eine hilfreichere antwort
greetz
Julian
Hallo Julian,

habe bereits eine Antwort erhalten, funktioniert wie folgt:

Application.Dialogs(xlDialogSaveAs).Show(sFile, 1)

Diese 1 bedeutet, speichern unter dem xls Format. Leider wird das im
Object Browser bei der Suche nach xlfileformat nicht angezeigt.

Trotzdem Danke

Gruß Steffen
unknown
2006-03-16 07:52:26 UTC
Permalink
Post by Steffen
Hallo NG!
Ich stehe vor folgendem Problem. Ich möchte beim Speichern einer
Arbeitsmappe den Dateityp vorgeben, momentan sieht die Anweisung dazu
Application.Dialogs(xlDialogSaveAs).Show(sFile, xlWorkbookNormal)
Das Speichern unter Dialogfeld wird angezeigt, damit der Anwender das
Laufwerk aussuchen kann, sfile ist eine Variable.
"unable to get the show property of the dialog class"
Ich verwende Excel 2002, SP3, englisch.
Hat jemand eine Idee, wie ich dennoch das Fileformat auf *.xls vorgeben
kann??
Gruß und besten Dank für Eure Antwort(en)
Steffen
Auf die Schenlle:
Ich ahbe auch keine direkt Idee wie ich dem bekannten Dialog einen
Dateityp mitgeben kann - offenbar soll der (pure) Box-Aufruf dem
Benutzer "freie Hand" lassen und natürlich XLS (oder nuerdings wohl XML)
vorgeben. Mehr als die Funktion(alität) die das Menü anbietet wird ja
nicht ausgelöst...

Die Hilfe zu SaveAs meint:

Syntax 1
Ausdruck.SaveAs(Filename, FileFormat, Password, WriteResPassword,
ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)
Syntax 2
Ausdruck.SaveAs(Filename, FileFormat, Password, WriteResPassword,
ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution,
AddToMru, TextCodePage, TextVisualLayout)

Würde der bescheidene Weg mit einer Input-Box die den Dateinamen abfragt
(Typ übernimmt hinterrücks dann natürlich das Makro) und normales SaveAs
nicht auch zum Ziel führen?
--
Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
unknown
2006-03-16 08:00:52 UTC
Permalink
Post by Steffen
Hallo NG!
Ich stehe vor folgendem Problem. Ich möchte beim Speichern einer
Arbeitsmappe den Dateityp vorgeben, momentan sieht die Anweisung dazu
Application.Dialogs(xlDialogSaveAs).Show(sFile, xlWorkbookNormal)
Das Speichern unter Dialogfeld wird angezeigt, damit der Anwender das
Laufwerk aussuchen kann, sfile ist eine Variable.
"unable to get the show property of the dialog class"
Ich verwende Excel 2002, SP3, englisch.
Hat jemand eine Idee, wie ich dennoch das Fileformat auf *.xls vorgeben
kann??
Gruß und besten Dank für Eure Antwort(en)
Steffen
Medre! Da war ich zu schenll! Der Pfad ist ja das Problem!

Aber - hier strikt die Erinnerung und der Chef ruft - ich kann doch den
Dialog "blind" ausführen lassne und seine Rückgabe einer Variablen
zuweisen?!??
Statt .Show mal .Dispaly - so etwa: DateiMitPfad =
Application.Dialogs(xlDialogSaveAs).Display(sFile)
[wenn man den 2. Parameter verglassen darf, den übernimmt ja SaveAs!]
--
Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
Loading...