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

SaveAsUI

SaveAsUI
20.04.2023 15:04:47
Katharina Gamer

Hallo Zusammen,

ich habe mal wieder eine Frage..
Ich habe im VBA einen Speicherbutton eingefügt, der die Datei unter einem vorgegebenen Namen an einer vorgegebenen Adresse speichert. Nun möchte ich, dass wenn der Anwender aus Versehen auf den "normalen" Microsoft Speicherbutton links oben klickt, dass dann die Datei unter der selben Adresse und dem selben Namen gespeichert wird. Analog soll das auch für "Speichern unter" gelten. Es soll damit verhindert werden, dass die Datei auf keinen Fall unter einem anderen Namen oder einem anderen Ort gespeichert wird...

Ich habe das Ganze mit einer Schleife programmiert:
Sub Worksheet_BeforeSave(...)

If SaveAsUI = False Then
ActiveWorkbook.Save As Filename:= ..., FileFormat:=...

ElseIf SaveAsUI = True Then
ActiveWorkbook.Save As Filename:= ..., FileFormat:=...

End If

Aber sobald ich nun Speichern klicke, gerät der Speichervorgang in eine Endlosschleife und ich weiß nicht so genau wieso bzw. wie ich das Ganze verhindern kann..

Danke schonmal für eure Hilfe!

Liebe Grüße
Katharina

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SaveAsUI
20.04.2023 15:08:31
Rudi Maintaire
Hallo,
SaveAs löst natürlich das Event BeforeSave aus.
Schalte die Events ab. (Und unbedingt wieder ein!)

Wie willst du verhindern, dass die Datei im Explorer verschoben/ kopiert/ umbenannt wird?

Gruß
Rudi


AW: SaveAsUI
20.04.2023 15:41:03
Katharina Gamer
Hallo Rudi,

danke für Deine Hilfe. Allerdings soll ja bevor gespeichert wird, geprüft werden, welcher Speicherbutton geklickt wird - wie löst man das dann?

Liebe Grüße
Katharina


AW: SaveAsUI
20.04.2023 15:51:20
Daniel
naja, so wie du das schon programmiert hast, bzw etwas einfacher, da die Variable SaveAsUI den Wert WAHR oder FALSCH haben kann und man das in der IF-Abfrage direkt verwenden kann:

If SaveAsUI Then
     hier der Falle "Speichern unter"
Else
    hier der Fall normales Speichern
end if
Gruß Daniel


Anzeige
AW: SaveAsUI
20.04.2023 15:58:37
Katharina Gamer
Hallo Daniel,

danke auch für Deine Hilfe.
Soll ich es Deines Erachtens auch aus Workbook_BeforeSave auslagern? Schreibe ich den Code dann in eine allgemeine
Sub in "Diese Arbeitsmappe" oder wie verfahren dann damit? Denn wenn ich es so wie unten in "Diese Arbeitsmappe" schreibe, dann passiert nichts..

Also dann bspw. 
Sub Test()
If SaveAsUI Then
     ActiveWorkbook.SaveAs Filename:= ..., FileFormat:= ...

Else
    ActiveWorkbook.SaveAs Filename:= ..., FileFormat:= ...
End If
End Sub
Liebe Grüße
Katharina


Anzeige
AW: SaveAsUI
20.04.2023 22:15:27
Rudi Maintaire
Hallo,
in einem allgemeinen Modul:
Public bolButton as boolean
In deinem Buttoncode
bolButton=true
ActiveWorkbook.SaveAs Filename:= ..., FileFormat:=...
bolButton=False
In DieseArbeitmappe
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Cancel = Not bolButton
End Sub
Bewirkt, dass das Speichern einfach abgebrochen wird, wenn es nicht über den Button erfolgt.

Warum eigentlich SaveAs und nicht einfach Save? SaveAs benutzt man nur um den Namen oder das FileFormat zu ändern.

Gruß
Rudi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige