Excel 2007 Makro-Problem

11/05/2009 - 16:35 von Florian | Report spam
Hi,

ich habe folgendes Problem:

In einem Excel 2003 Workbook wird folgender Code verwendet um eine Range von
einem Sheet in ein anderes zu kopieren:

Worksheets("ABC").Range("E1:M37").Copy
Worksheets("XYZ").Range("A11").Select
Worksheets("XYZ").Paste

Das knifflige daran: in dieser Range befinden sich neben Text und Grafiken
auch ActiveX-Checkboxes, die unter Excel 2003 aber problemlos mitkopiert
werden.

Anders sieht es in Excel 2007 aus: Wàhrend das Makro ansich ohne Probleme
ausgeführt und die Range auch kopiert wird, fehlen in Excel 2007 diese
ActiveX-Controls.. so wie es scheint werden sie einfach nicht mehr
mitkopiert...
Kann man diese Funktionalitàt irgendwie beeinflussen oder das Problem anders
lösen?
 

Lesen sie die antworten

#1 Andreas Killer
11/05/2009 - 18:25 | Warnen spam
Florian schrieb:

Worksheets("ABC").Range("E1:M37").Copy
Worksheets("XYZ").Range("A11").Select
Worksheets("XYZ").Paste

Das knifflige daran: in dieser Range befinden sich neben Text und Grafiken
auch ActiveX-Checkboxes, die unter Excel 2003 aber problemlos mitkopiert
werden.

Anders sieht es in Excel 2007 aus: Wàhrend das Makro ansich ohne Probleme
ausgeführt und die Range auch kopiert wird, fehlen in Excel 2007 diese
ActiveX-Controls.. so wie es scheint werden sie einfach nicht mehr
mitkopiert...
Kann man diese Funktionalitàt irgendwie beeinflussen oder das Problem anders
lösen?


Kopiere die Checkboxen Versionsabhàngig auch per Makro. Dann làuft der
Code sowohl in XL2007 und davor gleich.

Andreas.

Option Compare Text

Sub Test()
Dim S As Shape

Worksheets("ABC").Range("E1:M37").Copy
Worksheets("XYZ").Activate
Worksheets("XYZ").Range("A11").Select
Worksheets("XYZ").Paste

'Excel 2007?
If Val(Application.Version) = 12 Then
With Sheets("ABC")
'Shapes einzeln kopieren
For Each S In .Shapes
'Was für ein Dings ist das?
Select Case TypeName(S.OLEFormat.Object)
Case "CheckBox"
'Checkbox kopieren
S.Copy
Sheets("XYZ").Paste
'Und an die gleiche Stelle bringen
With Selection
.Left = S.Left
.Top = S.Top
End With
End Select
Next
End With
End If
End Sub

Ähnliche fragen