Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA _pivate_sub save as

Forumthread: 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

---------------
Anzeige

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige