VBA Office 2010 (Excel)

Leitwolf22

Lt. Junior Grade
Registriert
Juni 2008
Beiträge
268
Hallo

Diese Bug bereitet mir ordentlich Kopfzerbrechen. Programmiert wurde das Ganze mit Excel 2003, Probleme gibts nun mit der Migration auf Office 2010. Der Fehler war mir zunächst mal völlig unerklärlich, hat sich aber inzwischen ziemlich eingrenzen lassen, siehe unten.


funktioniert:

Diagramm1.Select

With Diagramm1.Shapes("Picture 1")
.Left = 600
.Top = 20
End With


funktioniert nicht:

'Diagramm1.Select

With Diagramm1.Shapes("Picture 1")
.Left = 600
.Top = 20
End With


Es handelt sich hier nur um ein Bild welches das Diagramm verschönert und dazu neigt zu "verrücken". Also wird es eben immer wieder in Position gebracht.

Das Objekt wird ja so oder so eindeutig angesprochen, und funktioniert hat es ja da die längste Zeit. Also wie löse ich das Problem ohne hin und her "selekten" zu müssen ??

lg.
 
@
Wieso fragst du nicht den Assistenten oder Hilfe oder F1 im Officeproghramm?
 
In der Dot-Syntax auf das Shapes-Objekt zuzugreifen funktioniert (wenn ich mich recht erinnere) tatsächlich nur für das selektierte Diagramm.
 
@OhNo

Eben nicht !

Ich hab genau selbe Situation in einem neuen Spreadsheet durchgespielt, und da funktioniert das wiederum problemlos.

Ich kann also von Diagramm1 aus, per Button, dieses da durchführen lassen:

Diagramm4.Shapes("Picture 160").Top = 300

..ganz ohne selektieren. Der Unterschied besteht wirklich nur in der größe des Spreadsheets, da mein Problemfall halt relativ groß ist und mehrere Diagramme beinhaltet.
 
@OhNo

Eben nicht !
Sondern? Welche Rückschlüsse ziehst Du?
Das .cells-Objekt (bzw. Referenzieren desjenigen) setzt ja auch .activate bzw. .select voraus.

Und Du bist sicher, dass dann nicht zufällig das Diagramm bereits selektiert war?
Oder das zuletzt selektierte?
Evtl. wird der Zugriff durch die schiere Datenmenge auf dem anderen Spreadsheet nicht mehr aufrechtgehalten.

Hast Du Dir das Objekt mal im Überwachungfenster angesehen?
 
Zuletzt bearbeitet:
Zurück
Oben