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

Vor Speichern Makro und danach

Vor Speichern Makro und danach
DirkR
Hallo Excelgemeinde,
ich komme leider nicht alleine weiter und bitte daher um eure Hilfe!!!!
Folgendes möchte ich erreichen:
Ich habe in 2 Tabellenblätter jeweils ein Image. Nun möchte ich, dass wenn gespeichert wird, dass vor dem speichern das bild im Image1 gelöscht wird, dann gespeichert wird, danach wieder das Bild geladen wird ohne dann noch einmal zu speichern.
Den unten aufgeführten Code habe ich aus dem Forum. Aber er funzt nicht. Die Datei wird mit den Bildern im Image gespeichert. Dadurch wird die Datei sehr groß.
Ich benutzte Excel 2007, hängt es damit zusammen, dass das Makro nicht funzt?
Gruß DirkR
Dim booCancel As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.ScreenUpdating = False
'Dein Makro vor Speichern
Sheets("Formblatt").Image1.Picture = Nothing
Sheets("Z2 V").Image1.Picture = Nothing
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
With Sheets("Formblatt")
.Image1.Picture = LoadPicture("L:\X-Arbeitsordner\Bilder KO K01-16 (neue Gl.Nr.)\KO-" _
& Sheets("Datenbank").Cells(.ComboBox1.ListIndex + 21, 7).Value & ".JPG")
End With
With Sheets("Z2 V")
.Image1.Picture = LoadPicture("L:\X-Arbeitsordner-\Bilder KO K01-16 (neue Gl.Nr.)\KO-" _
& Sheets("Datenbank").Cells(.ComboBox1.ListIndex + 21, 7).Value & ".JPG")
End With
booCancel = False
End If
If Not booCancel Then Cancel = True: SaveAsUI = False 'speichern abbrechen
Application.ScreenUpdating = True
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nachtrag: Vor Speichern Makro und danach
03.12.2010 15:57:29
DirkR
Hallo Excelgemeinde,
mir ist noch etwas aufgefallen. Speichere ich die Dateials .xls Datei, dann klappt der Code.
Speichere ich die Datei als .xlsb dann wird das Bild vor dem Speichern visuell zwar gelöscht, aber die Dateigröße bleibt annähernd so groß, als wären die Bilder noch im Image. Lösche ich dann vor dem Ereignis Before_Save manuell die Bilder aus den Image und speichere dann, dann wird die Datei viel kleiner abgespeichert. Und genau so sollte es dann auch sein.
Ich hoffe ich habe mich verständlich ausgedrückt. Ich hoffe daher auf eure Hilfe!
Gruß DirkR
nicht getestet...
04.12.2010 09:05:14
Tino
Hallo,
versuch es mal anstatt mit
Sheets("Formblatt").Image1.Picture = Nothing
Sheets("Z2 V").Image1.Picture = Nothing
mit diesen Codezeilen
Sheets("Formblatt").Image1.Picture = LoadPicture("")
Sheets("Z2 V").Image1.Picture = LoadPicture("")
Habe ich jetzt aber nicht getestet.
Gruß Tino
Anzeige
AW: nicht getestet...
04.12.2010 11:47:00
DirkR
Hallo Tino,
danke für deine Antwort. Deinen Vorschlag hatte ich auch schon probiert, leider ohne Erfolg.
Speichere ich die Datei ohne die Bilder aus den Image zu löschen, wird die Datei mit (je nach Bilder) ca. 2,8 MB gespeichert. Lasse ich die Bilder mit dem Makro löschen vor dem Speichern, wird die Datei mit ca. 1,8 MB gespeichert. Lösche ich die Bilder manuell aus den Image und speichere dann, wird die Datei mit ca. 280 kb gespeichert. Es scheint so, als würden die Bilder immer noch Speicher belegen, obwohl sie visuell gelöscht sind. Klingt das logisch? Ich hoffe, du (ihr) habt noch eine andere Idee!?!?!
Gruß Dirk
Anzeige
evtl. noch ein DoEvents einbauen...
04.12.2010 12:30:25
Tino
Hallo,
    Sheets("Formblatt").Image1.Picture = LoadPicture("")
Sheets("Z2 V").Image1.Picture = LoadPicture("")
DoEvents
Gruß Tino
AW: evtl. noch ein DoEvents einbauen...
04.12.2010 12:52:26
DirkR
Hallo Tino,
danke für deine Anwort. Leider kann ich deine Vorschläge heute nicht testen. Werde erst morgen wieder zu Hause sein. Habe heute nicht die Möglichkeit, da kein Excel 2007 auf diesem Notebook installiert ist. Werde aber morgen Mittag testen und eine Rückmeldung geben.
Danke!
Gruß Dirk
Anzeige
AW: evtl. noch ein DoEvents einbauen...
05.12.2010 18:26:15
DirkR
Hallo Tino,
konnte leider erst jetzt testen.
Super es funktioniert nun einwandfrei. Die Datei wird mit 282 kb gespeichert. Genau so sollte es sein.
SUPER, Vielen Dank Tino!!!!!
Gruß DirkR

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige