Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1260to1264
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

VBA _pivate_sub save as

VBA _pivate_sub save as
Volker
Hallo,
ich habe ein Problem beim Speichern einer Excel Datei. Habe ein Makro im Internet gefunden, dieses eingebaut, funktioniert wunderbar ABER jetzt wird bei jedem speichern das Dialogfeld "Save as" aufgemacht.
ISt es möglich hier eine Abfrage einzubauen, welche prüft ob der Dateiname = dem Wert in Zelle K48 entpricht, wenn ja normal speichern, ansonsten den Dialog.
Hintergrund, das Makro machte sich in der Art erforderlich, weil die Urpsrungsdatein eine Vorlage ist. Und in Vorlagen funktionieren "normale" Speichern unter Makros nicht
----------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo Fehler
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ([K48])
Cancel = True
Fehler:
Application.EnableEvents = True
End Sub

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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA _pivate_sub save as
25.04.2012 07:38:29
marcl
Guten Morgen Volker,
Du könntest auch die Dateiendung abfragen....
Sub speichern()
If Right(ActiveWorkbook.Name, 4) = "xltm" Then
Application.Dialogs(xlDialogSaveAs).Show ([K48])
Else
ActiveWorkbook.SaveAs Filename:=Cells(48,11), FileFormat:=xlExcel13
End If
End Sub

Gruß
marcl
AW: VBA _pivate_sub save as
25.04.2012 07:58:45
fcs
Hallo Volker,
mit folgenden Anpassungen sollte es funktionieren.
Wenn die Arbeitsmappe mehr als 1 Tabellenblatt hat, dann solltest du das Tabellenblatt mit vorgeben
statt
ActiveSheet.Range("K48")
dann jeweils
Me.Worksheets("Tabelle XYZ").Range("K48")
Gruß
Franz
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo Fehler
If SaveAsUI = False Then
If LCase(Me.Name)  LCase(ActiveSheet.Range("K48")) Then
Application.EnableEvents = False
If Application.Dialogs(xlDialogSaveAs).Show(ActiveSheet.Range("K48")) = False Then
MsgBox "Datei wurde nicht gespeichert"
Else
MsgBox "Datei wurde nicht gespeichert"
End If
Cancel = True
Application.EnableEvents = True
End If
End If
Fehler:
End Sub

Anzeige
AW: VBA _pivate_sub save as
25.04.2012 14:30:48
Volker
Ich danke Euch!
Habe bis heute nacht um 2 gegoogelt und eine Lösung gefunden. Ganz einfach, wenn man weiß wies geht:-)
Das Problem war, dass Excel nach diesem Befehl "Application.Dialogs(xlDialogSaveAs).Show ([K48])" keine einfache Erweiterung wie "xlsm" oder ähnlich zulässt. Hier muss man einfach ",52" eingeben was wohl für xlsm steht und schon funktionierts.
Bin ebenfalls dahinter gekommen, das normale "Sub" sehr wohl funktionieren. Man muss diese nur auf die Seite "Diese Arbeitsmappe" bei VBA schreiben und nicht in eine Tabelle.
Problem war bei der Privat

Sub Variant, wenn man das Blatt schon gespeichert hatte und wieder auf speichern klickte kam  _
immer wieder der Speichern unter Dialog, dieses war aber nur einmalig gewünscht.
Korrekter Code anbei:
Sub Speichern_unter_neuem_Namen()
Application.Dialogs(xlDialogSaveAs).Show ([K48]), 52
End Sub

Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige