Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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
Speichern einschränken auf Dateitypen
16.12.2021 11:23:47
Ticli
Hi,
Ich möchte eine Excel Vorlage an Mitarbeitern geben, so dass diese bei "speichern unter" der Vorlage nur 2 möglichkeiten auswählen können. Entweder als PDF oder als wieder als Excel Vorlage.
Habe diesen Code hier gefunden, jedoch geht das irgendwie nicht. Ausserdehm will ich es nicht als Makro ausführen lassen, sondern als feste Funktion als VBA
Wäre sehr Dankbar um hilfe!

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'lässt nur speichern als .xlsm zu
Dim varFileName As Variant
If SaveAsUI = True Then
varFileName = Application.GetSaveAsFilename( _
fileFilter:= _
"Excel Macro Enabled Workbook (*.xlsm),*.xlsm," & _
"PDF Files (*.pdf), *.pdf", _
InitialFileName:="Entwicklungsantrag - [Titel] " & Date & ".xlsm")
If varFileName  False Then
Select Case LCase(Right(varFileName, 4))
Case ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=varFileName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Case Else
ActiveWorkbook.SaveAs Filename:=varFileName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Select
End If
Cancel = True
End If
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Speichern einschränken auf Dateitypen
16.12.2021 16:41:13
UweD
Hallo
versuch es mal so.
Den einzelnen Code innerhalb der 2 Varianten kannst du ja noch anpassen
in den Codebereich von "DieseArbeitsmappe"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
Hier wird eine Userform aufgerufen, der die 2 Möglichkeiten enthält
Userbild
Im Codebereich der Userform steht dann

Private Sub CommandButton1_Click()
On Error GoTo Fehler
Const APPNAME = "CommandButton1_Click"
Dim Pfad As String, Datei As String
Pfad = "E:\Excel\temp\" 'mit \ am Ende
Datei = "Testname"
Application.EnableEvents = False
If Me.OptionButton1 Then ' PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Pfad & Datei & ".pdf", _
OpenAfterPublish:=True
ElseIf Me.OptionButton2 Then 'Vorlage
ActiveWorkbook.SaveAs _
Filename:=Pfad & Datei & ".xltm", _
FileFormat:=xlOpenXMLTemplateMacroEnabled
End If
Me.Hide
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Speichern einschränken auf Dateitypen
17.12.2021 08:59:52
Ticli
Hi Uwe
Danke viel mal für deine tolle Hilfe! Es geht zu 98% :o))
Sobald ich jedoch über die Userform speichere erscheinen diese Meldungen und wirs somit nicht gepeichert:
PDF:
Userbild
Xltm:
Userbild
finde einfach nicht die Lösung......
AW: Speichern einschränken auf Dateitypen
17.12.2021 09:13:01
UweD
Hallo
existiert das Laufwerksverzeichnis "E:\Excel\Temp\" denn auch bei dir ?
War ein Beispiel für mich und muss auf deine Situation angepasst werden.
LG UweD
Anzeige
AW: Speichern einschränken auf Dateitypen
17.12.2021 09:38:41
Ticli
Hi Uwe
Jetzt geht es. War genau das Problem.
Die abgespeicherte Datei wird jedesmal in einen anderen Pfad abgespeichert. Besteht die Möglichkeit den Pfad variabel zu programmieren? So das ich danach den Ordner angeben kann wo ich es abspeichern möchte?
Nochmals vielen dank! Wenn Du mal in der CH bist, musst Du mir es unbedingt wissenlassen!! Hast ein Nachtessen bei mir zu gut!!
AW: Speichern einschränken auf Dateitypen
17.12.2021 11:22:31
UweD
Hallo in die Schweiz
Bin im Februar wieder in Beatenberg / Interlaken / Kleine Scheidegg ;-)


Tausche bitte beide Code aus

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then 'nur bei Speichern unter
Cancel = True
UserForm1.Show
End If
End Sub
Normales Speichern ist so ohne Nachfragen möglich.

Option Explicit
Private Sub CommandButton1_Click()
On Error GoTo Fehler
Const APPNAME = "CommandButton1_Click"
Dim Pfad As String, Datei As String
Dim Dlg As FileDialog
Datei = "Testname " & Format(Date, "YYYY_MM_DD")
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker) 'Verzeichnis wählen
Dlg.Title = "Speicherpfad auswählen"
If Dlg.Show = True Then
Pfad = Dlg.SelectedItems(1) & "\"
Application.EnableEvents = False
If Me.OptionButton1 Then ' PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Pfad & Datei & ".pdf", _
OpenAfterPublish:=True
ElseIf Me.OptionButton2 Then 'Vorlage
ActiveWorkbook.SaveAs _
Filename:=Pfad & Datei & ".xltm", _
FileFormat:=xlOpenXMLTemplateMacroEnabled
End If
Else
MsgBox "abgebrochen"
End If
Me.Hide
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige

178 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige