Registriert seit: 31.12.2014
Version(en): 2003
Dann werde ich vorsichtshalber doch für jede Datei eine Sicherheitskopie zunächst machen und sie zumindest überfliegen, um ausschließen zu können, dass sich irgendwo doch ein größeres Übel eingeschlichen hat. In den Dateien steckt jede Menge Lebenszeit schon drin. Da will ich dann doch lieber etwas vorsichtiger sein. ^^ Danke jedenfalls für deine Mühen schonmal. :)
Registriert seit: 31.12.2014
Version(en): 2003
Mir ist ein erstes Problem aufgefallen. Bei den Bildern ist unter den Eigenschaften die Abhängigkeit von der Zellposition und -größe verloren gegangen. Gibt es eine Möglichkeit, wie ich das für alle Bilder einer Datei in einem Schritt wieder anstellen kann, unabhängig davon, in welchem Tabellenblatt sie sich befinden? Ich krieg das bisher nur für ein gesamtes Tabellenblatt, nicht aber für die jeweils ganze Datei hin, die aus etlichen Tabellenblättern besteht.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
hab die entsprechende Zeile in den Code eingefügt.
Lass es einfach nochmal drüber laufen.
Code:
Sub GestauchteBilderVerkleinern()
Dim dblLeft As Double, dblTop As Double
Dim oShape As Shape, oWs As Worksheet
Application.ScreenUpdating = False
For Each oWs In ActiveWorkbook.Worksheets
For Each oShape In oWs.Shapes
With oShape
If .Type = 13 Then
dblLeft = .Left
dblTop = .Top
.Copy
With .Parent.Pictures.Paste
.Left = dblLeft
.Top = dblTop
.Placement = xlMoveAndSize
End With
.Delete
End If
End With
Next oShape
Next oWs
Application.ScreenUpdating = True
End Sub
Gruß Uwe
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
und hier mit der Korrektur allein:
Code:
Sub BilderVonGroesseUndPositionAbhaengigEinstellen()
Dim oShape As Shape, oWs As Worksheet
For Each oWs In ActiveWorkbook.Worksheets
For Each oShape In oWs.Shapes
With oShape
If .Type = 13 Then
.Placement = xlMoveAndSize
End If
End With
Next oShape
Next oWs
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Philodoof
Registriert seit: 31.12.2014
Version(en): 2003
Der Code scheint funktioniert zu haben. :) Habe aber natürlich nur stichprobenhaft geschaut, ob Bilder nun abhängig sind von ihren Zellen.
Bin jetzt mit allen Dateien durch und habe auch die Sicherheitskopien gelöscht. Was mir aufgefallen ist: in wenigen Fällen hat der Verkleinerungscode dazu geführt, dass sich der Speicherplatz erhöht hat. Das verstehe ich nicht so ganz.

Leider hatte ich den erten dieser Fälle wie in Trance von den monotonen Schrittabfolgen gespeichert, ehe ich realisierte, dass das dumm war. Da waren auch schon viele Dateien erfolgreich durchlaufen und ich ahnte nicht wirklich mehr etwas derartiges. Alles in allem hat es sich aber sehr gelohnt. Ich konnte grob 700 MB wegschlagen mit dem Code. Das ist ja schon ein enormer Gewinn. :)
Dann hoffe ich jetzt, dass mir nicht noch ein oberflächlich unsichtbares Problem auffällt.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
dass sich der Speicherbedarf erhöht, könnte daran liegen, dass das Bild kleiner war als in Excel dargestellt.
Gruß Uwe
Registriert seit: 31.12.2014
Version(en): 2003
Aaaaahh. Ja das ist eine plausible Erklärung. :) In manchen Fällen habe ich zu kleine Bilder gefunden und dann damit Vorlieb genommen sie zu strecken, wenngleich es der Grafik mitunter abträglich war.
Registriert seit: 31.12.2014
Version(en): 2003
Ach herrje, habe gerade erst gesehen, dass das alles immer nur bis zur jeweils 133 Zeile eines Tabellenblattest funktioniert hat. :( Alles darunter sind jetzt nadeldünne Bilder. :( Als ich geguckt hatte ob es funktioniert hat, habe ich die Tabellenblätter oben durchgeklickt, aber nie so weit heruntergescrollt. Ich schätze jetzt habe ich erstmal, Tage, wenn nicht sogar Wochen vor mir, alles verloren gegangene neu zu machen. Noch weiß ich nicht wieviele Bilder insgesamt betroffen sind und wie groß der Schaden somit insgesamt ist. Hätte ich doch lieber die Sicherheitskopien nicht heute morgen gelöscht.