Problem mit Speicher-Makro!

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Problem mit Speicher-Makro!
von: Oliver S.
Geschrieben am: 09.11.2003 06:51:22

Moin an alle,

die schon wach sind. Ich benötige mal wieder Hilfe zu einem Makro. Ich benutze nachfolgendes Makro, um eine Datei zu speichern.



Sub Speichern()
Const DateiName = "S:\HAUSSTATION\Auslesedaten Zenner Zähler\Vorlagen\Vorlage Monatsauslesung Datenlogger.xls"
Dim s
Dim Abfrage As Boolean
Application.Dialogs(xlDialogSaveAs).Show
If a = 0 Then
Call Tabelle1_ein
Abfrage = False
s = ActiveWorkbook.FullName
Cancel = True
  'If SaveAsUI Or UCase(ActiveWorkbook.FullName) = UCase(VorlagenName) Then
 'Abfrage = True
    Do
    s = Application.GetSaveAsFilename(InitialFileName:="", fileFilter:="Excel-Arbeitsmappe, *.xls")
    If s = False Then Call Tabelle1_aus
    If s = False Then Exit Sub 'Abbruch gedrückt
    ok = True
    If UCase(s) = UCase(VorlagenName) Then ok = False: _
        MsgBox "Dies ist die Vorlage! Bitte andere Datei wählen!"
    Loop Until ok = True
End If
Application.EnableEvents = False
Application.DisplayAlerts = Abfrage
On Error Resume Next
ActiveWorkbook.SaveAs Filename:=s
On Error GoTo 0
Application.DisplayAlerts = True
Application.EnableEvents = True
'End If
a = 0
Call Tabelle1_aus
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Dieses Makro lässt es nicht zu, beim Speichern den Namen der Vorlagendatei zu vergeben. Die Datei muss immer unter einem anderen Namen abgespeichert werden. Einzige Ausnahme, wenn a = 1 (a wird durch eine Tastenkombination auf 1 gesetzt), dann kann die Datei unter ihrem Namen abgespeichert werden. Mein Problem ist nun folgendes, egal ob ich die Datei unter einem anderen Namen oder unter ihrem eigenen Namen speichere oder die Abbruchtaste drücke, das Fenster Speichern unter wird immer zweimal hintereinander geöffnet. Ich muss also immer zweimal speichern oder nach dem ersten Speichern die Abbruchtaste drücken. Ich komme einfach nicht dahinter wieso das so ist. Vielleicht hat ja hier jemand einen Tip für mich.


Für die Lösung wäre ich Euch dankbar.
Schon mal besten dank,
Oliver
Bild


Betrifft: AW: Problem mit Speicher-Makro!
von: Nepumuk
Geschrieben am: 09.11.2003 07:58:55

Hallo Oliver,
dem Code entnehme ich das du einmal den Dialog "xlDialogSaveAs" aufrufst und im Anschluss den Dialog "GetSaveAsFilename". Also zwei mal das praktisch selbe Fenster. Wobei ich mit dem ersten speichern kann wie ich lustig bin.
Gruß
Nepumuk


Bild


Betrifft: AW: Problem mit Speicher-Makro!
von: Oliver S.
Geschrieben am: 09.11.2003 14:11:06

Hi Nepumuk,

sorry, dass ich erst jetzt antworte und danke, dass Du geantwortet hast. Das Du im ersten Fenster speichern kannst, was Du willst, wird daran liegen, dass ich vergessen hatte zu erwähnen, dass in Diese Arbeitsmappe noch ein BeforeSave-Ereignis steht. Wobei die Anweisungen Analog zu dem Makro ist. Nachfolgend mal der Code:



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Const DateiName = "S:\HAUSSTATION\Auslesedaten Zenner Zähler\Vorlagen\Vorlage Monatsauslesung Datenlogger.xls"
Dim s
Dim Abfrage As Boolean
If a = 0 Then
Abfrage = False
s = ActiveWorkbook.FullName
Cancel = True
If SaveAsUI Or UCase(ActiveWorkbook.FullName) = UCase(VorlagenName) Then
    Abfrage = True
    Do
    s = Application.GetSaveAsFilename(InitialFileName:="", fileFilter:="Excel-Arbeitsmappe, *.xls")
    If s = False Then Exit Sub 'Abbruch gedrückt
    ok = True
    If UCase(s) = UCase(VorlagenName) Then ok = False: _
        MsgBox "Dies ist die Vorlage! Bitte andere Datei wählen!"
    Loop Until ok = True
End If
ThisWorkbook.Saved = True
Application.EnableEvents = False
Application.DisplayAlerts = Abfrage
On Error Resume Next
ActiveWorkbook.SaveAs Filename:=s
On Error GoTo 0
Application.DisplayAlerts = True
Application.EnableEvents = True
End If
a = 0
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Wenn ich die erste Anweisung zum Öffnen des Fensters Speichern unter lösche, klappt dass was ich möchte gar nicht mehr. Vielleicht muss das Makro ja gänzlichst anders aufgebaut werden. Nur da stossen meine VBA-Kenntnisse an Grenzen. Eventuell hst Du ja noch einen Tip für mich.


MfG,
Oliver


Bild

Beiträge aus den Excel-Beispielen zum Thema " Problem mit Speicher-Makro!"