ich habe ein sehr komplexes Worksheet mit sehr vielen vertikalen
Gruppierungen. Wenn ich diese von Hand oder per VBA alle gleichzeitig
schliessen moechte, so bekomme ich nur die Fehlermeldung "Objekte
koennen nicht ueber das Blatt hinaus verschoben werden.". Wenn ich
aber VBA jede Zeile einzeln durchgehe und zuerst oeffne und wieder
schliesse geht es. Doch leider dauert dies dann sehr lange.
Woran kann das liegen und was kann man dagegen tun?
Vielen Dank im Voraus
Dirk
diese Meldung erscheint auch, wenn man versucht Spalten einzufügen, wenn
darunter Zellen verbunden sind.
Möglicherweise könntest du auch Erfolg haben, wenn du die
Bldschirmaktualisierung abschaltest. So kann die Verarbeitung schneller
ablaufen.
Viele Grüße
Bernd
MVP für Microsoft Excel
Excel-Know-How und Publikationen unter http://held-office.de
"Dirk Flakowski" <d.fla...@megalith-software.de> schrieb im Newsbeitrag
news:3d17494e...@msnews.microsoft.com...
daran habe ich schon gedacht... Doch leider geht es dann immer noch
rund 15 Sekunden was fuer unsere User einfach unertraeglich ist. Gibt
es nicht eine Moeglichkeit, eine ganze Menge von Gruppierungen auf
einen Schlag zu oeffnen oder zu schliessen?
Danke
Dirk
vielleicht versteh ich jetzt was falsch aber einen Versuch ist´s wert.
Du hast doch, wenn Du Dir die Gleiderungen am linken Bildschirmrand
anzeigen lässt, darüber Zahlen stehen. Diese kannst Du doch benutzen
um die Gleiderungsgruppen auf einen Schlag zu öffnen oder zu schließen.
Meintest Du sowas oder eher nicht?
Gruss
Daniel
Daniel
genau so etwas meine ich... Aber wenn ich das per VBA mache bekomme
ich eben diese Fehlermeldung "Objekte koennen nicht ueber das Blatt
hinaus verschoben werden.", die ich nicht bekomme, wenn ich jede
einzeln schliesse...
Danke
Dirk
im wesentlichen sieht das Makro wie folgt aus:
Do Until lngCurrentRow > lngExcelRow
Rows(lngCurrentRow).ShowDetail = True
Rows(lngCurrentRow).ShowDetail = Not bolClose
lngCurrentRow = lngCurrentRow + 1
Loop
Wobei "bolClose" entscheidet ob eben alle geoeffnet oder geschlossen
werden sollen. Interessant ist auch noch, dass ich zuerst immer die
Gruppierung oeffnen und dann gegebenenfalls wieder schliessen muss
damit am Ende auch wirklich alle zu sind. Wenn ich das nicht mache
bleiben immer wieder zufaellig welche offen...
Danke
Dirk
Dim wsh As Worksheet
Set wsh = Sheets(1)
wsh.Outline.ShowLevels 1
um alle auszublenden?
--
Mit freundlichen Grüßen
Eckehard Pfeifer
ich hab mir die Aktion grade mal mit dem Makrorekorder aufgezeichnet und da
kam sowas bei raus:
ActiveSheet.Outline.ShowLevels RowLevels:=1
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
um alle zu schließen und
ActiveSheet.Outline.ShowLevels RowLevels:=3
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=3
um alle zu öffnen. Konnte ich danach auch wunderbar ausführen.
Vielleicht hilft das ja irgendwie weiter....
Gruss
Daniel
das ist eben genau das was den Fehler "Objekte koennen nicht ueber das
Blatt hinaus verschoben werden." hervorruft. Genau so etwas braeuchte
ich...
Dirk
wie groß ist denn Deine Tabelle?
Wie schon gesagt bei meiner kleinen Versuchstabelle hat es
reibungslos funktioniert.
Hast Du denn schonmal ausprobiert nur diese Zeilen, d.h.
ohne irgendwelchen anderen Code drumherum, auszuführen?
Gruss
Daniel
also dieses Tabellenblatt hat ca. 1500 Zeilen mit 40 Spalten,
Kommentaren, Gültigkeiten, Formatierungen,....
Diese Workbooks sind Teil eines Programms so dass ich sehr viele
verschiedene davon habe, die diesen Effekt zum Teil aufweisen und zum
Teil komischerweise nicht (alle sind vom Prinzip her gleich aufgebaut
beinhalten aber unterschiedliche Daten).
Man kann nicht mal von "Hand" alle auf einmal schliessen indem man in
Excel auf die entsprechenden Buttons clickt...
Danke
Dirk