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

Speichern unter
08.03.2013 08:40:08
DirkR
Hallo Excelgemeinde,
ich habe folgendes Macro, dass vor dem speichern Images leert, die Datei speichert und anschließend die Image wieder mit Bilder läd.
Das funktioniert auch super. Allerdings kann ich nun nicht mehr "Speichern unter" benutzen!
Ich bekomme es leider nicht hin und bitte um Hilfe!!!
Hier der Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Dim booMitImage As Boolean
Dim objShell As Object
Static BooCancel As Boolean
booMitImage = False 'False = ohne Bild speichern
Set objShell = CreateObject("WScript.Shell")
Application.ScreenUpdating = False
If Not booMitImage Then
'Dein Makro vor Speichern
Sheets("Ausweise | ID-Karten").Image1.Picture = LoadPicture("")
Sheets("Ausweise | ID-Karten").Image2.Picture = LoadPicture("")
DoEvents
End If
If Not BooCancel Then
BooCancel = True
If SaveAsUI Then 'wurde speichern unter gewählt?
Application.Dialogs(xlDialogSaveAs).Show
Else
Me.Save
End If
'Dein Makro nach speichern
Sheets("Ausweise | ID-Karten").Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Bilder\" & _
Sheets("Übersicht").Cells(157, 38).Value)
Sheets("Ausweise | ID-Karten").Image2.Picture = LoadPicture(ThisWorkbook.Path & "\Bilder\" & _
Sheets("Übersicht").Cells(157, 38).Value)
BooCancel = False
End If
If Not BooCancel Then Cancel = True: SaveAsUI = False: _
objShell.Popup "Die Datei wurde mit " & _
Round(FileLen(ThisWorkbook.FullName) / 1024, 0) & " Kilo Byte gespeichert", 2, "Die Datei  _
wurde gespeichert!"
Set objShell = Nothing
Application.ScreenUpdating = True
End Sub
Danke schon mal im Voraus!
Gruß Dirk

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern unter
08.03.2013 10:00:56
Rudi
Hallo,
evtl. so:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Dim booMitImage As Boolean
Dim objShell As Object
Static BooCancel As Boolean
if not SaveAsUI then
booMitImage = False 'False = ohne Bild speichern
Set objShell = CreateObject("WScript.Shell")
Application.ScreenUpdating = False
If Not booMitImage Then
'Dein Makro vor Speichern
Sheets("Ausweise | ID-Karten").Image1.Picture = LoadPicture("")
Sheets("Ausweise | ID-Karten").Image2.Picture = LoadPicture("")
DoEvents
End If
If Not BooCancel Then
BooCancel = True
If SaveAsUI Then 'wurde speichern unter gewählt?
Application.Dialogs(xlDialogSaveAs).Show
Else
Me.Save
End If
'Dein Makro nach speichern
Sheets("Ausweise | ID-Karten").Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Bilder\" & _
_
Sheets("Übersicht").Cells(157, 38).Value)
Sheets("Ausweise | ID-Karten").Image2.Picture = LoadPicture(ThisWorkbook.Path & "\Bilder\" & _
_
Sheets("Übersicht").Cells(157, 38).Value)
BooCancel = False
End If
If Not BooCancel Then Cancel = True: SaveAsUI = False: _
objShell.Popup "Die Datei wurde mit " & _
Round(FileLen(ThisWorkbook.FullName) / 1024, 0) & " Kilo Byte gespeichert", 2, "Die Datei   _
_
wurde gespeichert!"
Set objShell = Nothing
Application.ScreenUpdating = True
End If
End Sub

Dann sind aber zwischendrin einige Sachen überflüssig.
Gruß
Rudi

Anzeige
AW: Speichern unter
08.03.2013 11:14:51
DirkR
Hallo Rudi,
leider funktioniert dies auch nicht. Ich bekomme nun eine Fehlermeldung.
Ein kleines Fenster mit folgendem Warnhinweis erscheint:
Auf die Datei konnte nicht zugegriffen werden. Versuchen Sie die folgenden Lösungsvorschläge:
* Überprüfen Sie, ob der angegebe Ordner vorhanden ist.
* Stellen Sie sicher, dass der Ordner, in dem sich die Datei befindet, nicht schreibgeschützt ist.
* Vergewissern Sie sich, dass der Dateiname keines der folgenden Zeichen enthält: ? [ ] : | oder *
* Der Dateiname darf nicht länger als 218 Zeichen sein.
Gruß Dirk

Anzeige
AW: Speichern unter
08.03.2013 14:38:18
Tino
Hallo,
evtl. funktioniert dies?
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Dim booMitImage As Boolean
Dim objShell As Object, booReturn As Boolean

booMitImage = False 'False = ohne Bild speichern 

Set objShell = CreateObject("WScript.Shell")

Application.ScreenUpdating = False
Application.EnableEvents = False
  
If Not booMitImage Then
    'Dein Makro vor Speichern 
    Sheets("Ausweise | ID-Karten").Image1.Picture = LoadPicture("")
    Sheets("Ausweise | ID-Karten").Image2.Picture = LoadPicture("")
    DoEvents
End If

Cancel = True
booReturn = True

If SaveAsUI Or Me.ReadOnly Then 'wurde speichern unter gewählt? 
    booReturn = Application.Dialogs(xlDialogSaveAs).Show
Else
    Me.Save
End If
  
If Me.Saved And booReturn Then
    'Dein Makro nach speichern 
    Sheets("Ausweise | ID-Karten").Image1.Picture = _
        LoadPicture(ThisWorkbook.Path & "\Bilder\" & Sheets("Übersicht").Cells(157, 38).Value)
    Sheets("Ausweise | ID-Karten").Image2.Picture = _
        LoadPicture(ThisWorkbook.Path & "\Bilder\" & Sheets("Übersicht").Cells(157, 38).Value)
    
    objShell.Popup "Die Datei wurde mit " & _
                    Round(FileLen(ThisWorkbook.FullName) / 1024, 0) & " Kilo Byte gespeichert", 2, "Die Datei wurde gespeichert!"
Else
    MsgBox "Datei wurde nicht gespeichert!", vbExclamation
End If
Set objShell = Nothing

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Gruß Tino

Anzeige
AW: Speichern unter
08.03.2013 21:15:49
DirkR
Hallo Tino
danke für deine Antwort. Ich habe ein seltsames Phänomen. Zu Hause an meinem Rechner funktionieren beide Codes. Auf meiner Dienststelle im Netzwerk funktioniert "mein" Code nicht mit "Speichern unter".
Ich kann leider deinen Code erst am Montag wieder testen!!! :-(
Gebe dann noch eine Rückmeldung.
Vielen Dank schon mal!!!
Gruß Dirk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige