Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
332to336
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
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Rueckgabewert von Speichern unter

Rueckgabewert von Speichern unter
05.11.2003 13:23:59
Volker Croll
Hallo zusammen,

im Moment steht mir wohl jemand auf der Leitung.

Wenn ich mit Application.GetSaveAsFilename den "Speichern unter"-Dialog per VBA aufrufe, kann ich den eingegebenen Dateinamen abfragen mit

Filename = Application.GetSaveAsFilename

Wie kann ich den Dateinamen auslesen, wenn der User den Dialog ueber das Menue DATEI -> SPEICHERN UNTER... aufruft? (Moechte mittels Private Sub Workbook_BeforeSave eine Ueberpruefung vornehmen.)

Gruss Volker

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

Betreff
Datum
Anwender
Anzeige
AW: Rueckgabewert von Speichern unter
05.11.2003 14:12:32
Harald Kapp
Hallo Volker,
der Standard Menüeintrag "Speichern unter..." hat meines Wissens keinen Rückgabewert. Du kannst aber den Menüeintrag durch eine eigene Routine ersetzen:

Ansicht -> Symbolleisten anpassen, dann Datei -> Speichern unter... mit rechter Maustaste anklicken. Jetzt kannst Du dem Eintrag ein Makro zuweisen. Dein eigenes makro ruft nun den eigentlichen "Speichern unter..." Dialog per VBA auf und erhält somit den Dateinamen als Rückgabewert. Nun janst Du die Datei darunter aus VBA heruas speichern - oder nicht, wenn Dir der Name z.B. nicht gefällt.

Die Zuweisung an das Menü lässt sich sicher auch automatisieren, aber damit habe ich leider keine Erfahrung.

Gruß Harald
Anzeige
Noch offen ...
05.11.2003 19:56:55
Volker Croll
Hallo Harald,

vorab sorry, war heute nachmittag unterwegs, deshalb jetzt erst Rueckmeldung.

Kann Dir leider nicht ganz folgen
(Zitat) ... Ansicht -> Symbolleisten anpassen, dann Datei -> Speichern unter mit rechter Maustaste anklicken. Jetzt kannst Du dem Eintrag ein Makro zuweisen ...

Sowohl unter Excel 97 als auch 2000 bewirkt ein rechter Mausklick nur die Direkthilfe !?!?

Oder habe ich etwas falsch verstanden?

Gruss Volker
Step by Step
06.11.2003 06:28:06
Harald Kapp
Hallo Volker,
hast Recht, war nicht sauber ausgedrückt von mir.

Also
1. Schritt: Ansicht -> Symbolleisten anpassen
Das aufpoppende Formular ignorierst Du. Statt dessen
2. Schritt:
In Excel zunächst mit der linken Maustaste das menü "Datei" aktivieren (die übliche Auswahlliste muss aufklappen)
3. Schritt: Mit der rechten Maustaste in der aufgeklappten Auswahlliste auf den Punkt "Speichern unter..." klicken
4. Schritt: Jetzt mit der linken Maustaste den Punkt "Makro zuweisen" auswählen.

Das Makro für das Ersetzen der originalen "Speichern unter..." Funktion soltest Du vorher bereits geschrieben haben. Eventuell genügt das anscheinend schon vorhandene Makro innerhalb Deiner VBA-Applikation.

Gruß Harald
Anzeige
OK, aber wie geht das in VBA ...
06.11.2003 07:01:47
Volker Croll
Guten Morgen Harald,

danke, jetzt ist klar, was Du gemeint hast (kannte ich noch nicht). Nur wie setzte ich dies in VBA um, damit ich es beim Schliessen der Mappe auch wieder zuruecksetzten kann (der Makrorecorder zeichnet bei dieser Aktion leider nichts auf) ?

Gruss Volker
AW: Bitte in der Recherche suchen
06.11.2003 08:05:07
Harald Kapp
Sorry,
da müsstest Du bitte mal in der Recherche suchen. Ich weiß, dass man per VBA die Menues umdefinieren kann (also beim Öffnen der Mappe z.B. "Speichern unter..." auf eine eigene Routine umlenken und beim Schließen wieder rückgängig), aber ich bin leider nicht firm darin, wie man das genau macht.

Gruß Harald
Anzeige
So geht's ...
06.11.2003 15:40:11
Volker Croll
Hallo Harald,

folgendes funktioniert wie ich es wollte:

Code in "DieseArbeitsmappe" ->
------------------------------

Option Explicit
---------------

Private Sub Workbook_Open()
'Speichern unter im Menue Datei umleiten:
With Application.CommandBars("Worksheet Menu Bar").Controls("Datei")
.Controls("Speichern unter...").OnAction = "EigenesSpeichernUnter"
End With
End Sub

------------------------------------------------------------------------

Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Speichern unter wieder zuruecksetzen:
Application.CommandBars("Worksheet Menu Bar").Reset
End Sub

------------------------------------------------------------------------

Code in Modul1 ->
-----------------
Option Explicit
Sub EigenesSpeichernUnter()

Dim Name As Variant

Name = Application.GetSaveAsFilename(, "Excel-Dateien (*.xls),*.xls")

' falls Abbrechen gedrueckt wurde:
If Name = False Then Exit Sub ' deshalb muss Name als Variant deklariert werden !

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=Name
Application.DisplayAlerts = True

End Sub

------------------------------------------------------------------------------

Das ist zwar zunaechst quasi nur der Nachbau des "normalen" Speichern unter..."
aber der vom User fuer die Datei angegebene Name laesst sich mit IFs o.a. abfragen, pruefen usw.

Harald, herzlichen Dank fuer Deine Hilfe !

Gruss Volker
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige