PDA

Vollständige Version anzeigen : Problem mit Makro 2003 -> 2007


AnubisFFW
20.07.2012, 06:31
hallo zusammen,

ich plage mich mit dem problem herum, dass mein makro aus excel 2003 in excel 2007 nicht mehr funktioniert und finde keine abhilfe.

aufgabe des makros ist es einen vorgegebenen bereich als grafik zu speichern. ich muss allerdings gestehen, dass dieser code nicht von mir stammt...




Dim objPict As Object, objChrt As Chart
Dim rngImage As Range, strFile As String

On Error GoTo ErrExit

With Sheets("Tabelle1") 'Tabellenname - Anpassen!

Set rngImage = .Range("A1:AE65")

rngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False

Set objPict = .Shapes(.Shapes.Count)

strFile = "C:\Temp\bild.jpg" 'Pfad und Dateiname für das Bild

objPict.Copy

Set objChrt = .ChartObjects.Add(1, 1, objPict.Width + 8, objPict.Height + 8).Chart

objChrt.Paste
objChrt.Export strFile
objChrt.Parent.Delete
objPict.Delete

End With

ErrExit:
Set objPict = Nothing
Set objChrt = Nothing
Set rngImage = Nothing


ich hoffe ihr könnt mir weiterhelfen und danke euch für eure bemühungen.
gruß anubis

chris-kaiser
20.07.2012, 07:19
Hi

Habe den Code getestet...., geht mit 2007 ohne Probleme.
Vielleicht könntest du deine Fehlermeldung posten.

bzw. die Stelle wo der Code "meckert"

AnubisFFW
20.07.2012, 07:25
hmm... komisch.

es kommt keine fehlermeldung.
er fügt nur ein falsches element in den chart ein, wodurch eben auch eine falsche .jpg erstellt wird und löscht später den kopierten und als bild eingefügten bereich nicht.

habe nachher noch ein paar meetings, werde aber danach schauen, ob ich nicht eine abgespeckte version des dokuments hier anhängen kann.

chris-kaiser
20.07.2012, 07:30
Hi

nur so ein Verdacht ;)

With Sheets("Tabelle1") 'Tabellenname - Anpassen!

sollen die Daten auch aus der Tabelle1 kommen?..
..wenn nicht, gehört hier der Name des Blattes geändert.

AnubisFFW
20.07.2012, 08:20
ich hoffe du kannst rar entpacken. anbei mal eine gekürzte fassung.

chris-kaiser
20.07.2012, 09:12
Hi

komische Sache ... die Schaltflächen verursachen das Chaos.

Set objPict = .Shapes(.Shapes.Count)
liefert das falsche Ergebnis.......

hier mal eine "Krücke", wobei ich über Selection nicht gerade erfreud bin....., aber im Moment fällt mir nur das jetzt ein.


Private Sub CommandButton1_Click()

Dim objPict As Object, objChrt As Chart
Dim rngImage As Range, strFile As String

On Error GoTo ErrExit

With Sheets("Tabelle1") 'Tabellenname - Anpassen!

Set rngImage = .Range("A1:AE29")

rngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False

Set objPict = Selection

strFile = "C:\Temp\bild.jpg" 'Pfad und Dateiname für das Bild

objPict.Copy

Set objChrt = .ChartObjects.Add(1, 1, objPict.Width + 8, objPict.Height + 8).Chart

objChrt.Paste
objChrt.Export strFile
objChrt.Parent.Delete
objPict.Delete

End With

ErrExit:
Set objPict = Nothing
Set objChrt = Nothing
Set rngImage = Nothing
End Sub

AnubisFFW
20.07.2012, 09:27
:entsetzt: genial, deine krücke funktioniert! du bist mein held!!!

AnubisFFW
20.07.2012, 10:41
zu früh gefreut, wäre ja auch zu einfach gewesen... :(
der 4. pc mit office 2007 meckert.

stehen bleibt er in der zeile mit Set objChrt = .ChartObjects.Add

laufzeitfehler '1004':
anwendungs- oder objektdefinierter fehler
-----

wieder einen schritt weiter:

ohne blattschutz komm ich bis zum dateiexport, dort kommt dann zugriff verweigert...
-----

hat sich erledigt, das problem war hier win7!
dieses gibt nicht auf jeden ordner schreibzugriff ;-)