Clever-Excel-Forum

Normale Version: Große Bilder in Excel-Datei aufspüren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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. :) 
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.
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
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
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. Huh 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.
Hallo,

dass sich der Speicherbedarf erhöht, könnte daran liegen, dass das Bild kleiner war als in Excel dargestellt.

Gruß Uwe
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. 
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.
Seiten: 1 2