Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1648to1652
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

"speichern unter" Code klappt nicht 100%

"speichern unter" Code klappt nicht 100%
11.10.2018 11:30:31
Dennis
Servus Zusammen,
kurze Frage:
Ich habe mir folgenden Code gebaut um in einer Excel Mappe das Speichern nur unter gewissen umständen und mit vorgegebenen Namen zu erlauben:
(Mindestanzahl von Bildern)

Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Dateiname As String
Dateiname = Format(Date, "yyyy_mm_dd") & "_KBW_" & Range("F20") & "_" & Range("F6")
If ActiveSheet.Pictures.Count > 6 Then
Application.Dialogs(xlDialogSaveAs).Show (Dateiname)
Else
MsgBox "Bitte alle geforderten Bilder einfügen!"
End If
End Sub

Klappt soweit auch alles ganz gut, solang ich nicht "speichern unter" benutze.
Klicke ich auf das Speichern Symbol kommt die Fehlermeldung und alles ist in Ordnung.
Klicke ich auf "speichern unter" kommt auch die Meldung, allerdings direkt danach der Speichern Dialog, wo ich Name und Ort wählen/ändern kann.
Kann mir jemand sagen wie ich meinen Code umbauen muss um dieses Fenster zu "unterdrücken"?
Vielen Dank.
MfG
Dennis

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 11:46:37
{Boris}
Hi,
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Dateiname As String
Dateiname = Format(Date, "yyyy_mm_dd") & "_KBW_" & Range("F20") & "_" & Range("F6")
If ActiveSheet.Pictures.Count > 6 Then
Application.Dialogs(xlDialogSaveAs).Show (Dateiname)
Else
MsgBox "Bitte alle geforderten Bilder einfügen!"
Cancel = True
End If
End Sub
VG, Boris
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 11:48:56
Dennis
Das Leben kann manchmal so einfach sein.
Vielen Dank :D
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 11:53:12
fcs
Hallo Dennis,
probiere es mal so:
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Dateiname As String
Dateiname = Format(Date, "yyyy_mm_dd") & "_KBW_" & Range("F20") & "_" & Range("F6")
If ActiveSheet.Pictures.Count > 0 Then '> 6 Then
Cancel = True
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show (Dateiname)
Application.EnableEvents = True
Else
Cancel = True
MsgBox "Bitte alle geforderten Bilder einfügen!"
End If
End Sub

lg
Franz
Anzeige
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 11:53:29
UweD
Hallo
innerhalb der Speicherprozedur führst du ja wieder ein speichern aus, was dann wieder die Prozedur auslöst.
so?
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    On Error GoTo Fehler 
    Cancel = True ' abbrechen des aufgerufenen speicherns 
    Dim Dateiname As String 
    Dateiname = Format(Date, "yyyy_mm_dd") & "_KBW_" & Range("F20") & "_" & Range("F6") 
    If ActiveSheet.Pictures.Count > 6 Then 
        With Application 
            .EnableEvents = False ' Druckschleife verhindern 
            .Dialogs(xlDialogSaveAs).Show (Dateiname) 
        End With 
    Else 
        MsgBox "Bitte alle geforderten Bilder einfügen!" 
    End If 
     
    '*** Fehlerbehandlung 
    Err.Clear 
Fehler: 
    Application.EnableEvents = True 
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear 
End Sub 

LG UweD
Anzeige
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 11:58:46
Dennis
Ja, das mit der Schleife habe ich dann gerade auch gemerkt.
Jetzt klappe es perfekt.
Vielen Dank Leute :D
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 12:03:26
Dennis
Jetzt muss ich doch noch einmal nerven ;-)
Kann man das ganze auch so umstellen, dass man nicht Drucken kann ohne die Bedingung zu erfüllen?
MfG
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 12:38:39
UweD
hast du meine version mal probiert?
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 13:05:01
Dennis
Ja, klappt sehr gut mit dem Speichern.
Keine Schleife mehr etc. :D
Kann man das denn auch fürd Drucken "umbauen"?
MfG
AW: "speichern unter" Code klappt nicht 100%
11.10.2018 13:12:59
fcs
Hallo Dennis,
für das Drucken ist ein anderes Ereignismakro zuständig.
'Makro unter DieseArbeitsmappe
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case "Tabelle2", "Tab ABC"
'Diese Blätter ohne Prüfung drucken
Case Else
If ActiveSheet.Pictures.Count 

LG
Franz
Anzeige
AW: "speichern unter" Code klappt nicht 100%
12.10.2018 07:20:58
Dennis
Hm, das klappt jetzt leider nicht so gut.
Fehler:1004
Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein Fehler aufgetreten.
Blockieren sich die beiden Skripte gegenseitig?
MfG
AW: "speichern unter" Code klappt nicht 100%
12.10.2018 11:45:18
fcs
Hallo Dennis,
die beiden Ereignismakros haben normalerweise nichts mit einander zu tun. Allerdings fehlte bei meinem Makro ein End Select.
Die Fehlermeldung zeigt eigentlich an, dass eine Datei mit dem Namen unter dem du deine Datei speichern möchtes bereits geöffnet ist. Dafür hab ich jetzt nochmals eine Prüfung eingebaut - inklusive einer Allgemeinen Fehlerbehandlung.
Es ist halt etwas tricky, wenn man dem Speichern-Unter-Dialog in das Ereignis-Makro eingreift, das vor dem Speichern ausgeführt wird.
LG
Franz
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case "Tabelle2", "Tab ABC"
'Diese Blätter ohne Prüfung drucken
Case Else
If ActiveSheet.Pictures.Count  6 Then
'prüfen ob die Datei mit dem vorgegebenem Namen geöffnet ist
If LCase(Dateiname & ".xlsm")  LCase(Me.Name) Then
Set wkbOpen = Application.Workbooks(Dateiname & ".xlsm")
If Not wkbOpen Is Nothing Then
Cancel = True
MsgBox "Die Datei mit Name """ & Dateiname & ".xlsm"" ist zur Zeit geöffnet." & vbLf  _
_
& "Bitte Datei erst schliessen!", vbOKOnly, "Makro: Workbook_BeforeSave"
GoTo Fehler
End If
End If
Resume01:
Cancel = True
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show (Dateiname)
Application.EnableEvents = True
Else
Cancel = True
MsgBox "Bitte alle geforderten Bilder einfügen!", _
vbOKOnly, "Makro: Workbook_BeforeSave"
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 9 'Datei mit vorgegebenem Namen ist nicht geöffnet
Resume Resume01
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, _
vbOKOnly, "Makro: Workbook_BeforeSave"
End Select
End With
Application.EnableEvents = True
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige