Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

unmerge auf ganzes Blatt

unmerge auf ganzes Blatt
04.11.2014 01:00:53
yummi
Hallo zusammen,
Aufgabe ist es eine Arbeitsmappe "einzufrieren" so dass keine Änderungen mehr vorgenommen werden können (Reviewergebnis)
Das kann ich mit wks.Cells.Locked = true und anschliessendem Blattschutz auch wunderbar machen
Das Problem tritt dann auf, wenn in dem Sheet verbundenen Zellen vorhanden sind, dann funktioniert das lock nicht. Da ich aber nicht weiß wo auf dem Arbeitsblatt verbundene Zellen sind (sind auch jedes mal woanders, manchmal auch gar nicht) dachte ich mir ich mach ein unmerge damit das lock wieder geht.
Wenn ich jetzt aber ein wks.cells.unmerge dauert das ziemlich lange.
Daher meine Fragen:
Gibt es eine schnellere Methode?
Kann man abfragen, ob es verbundene Zellen auf einem Sheet gibt?
Vielen Dank für Eure Anregungen
yummi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
2x ja!
04.11.2014 03:04:45
Luc:-?
Warum so umständlich, Yummi?
Normalerweise sind doch alle Zellen (vor-)gesperrt, das gehört zu ihrem Format. Wird das Blatt geschützt, kannst du keine mehr ändern!
Wurde der Schutz für einige aufgehoben, kann man die Totalsperre für alle ganz einfach manuell wiederherstellen, indem man durch Klick auf die leere RahmenZelle links oben alle auswählt, Format wählt und das Sperrhäkchen unter Schutz setzt. Schon sind alle wieder gesperrt. Anschließend nur noch Blatt schützen.
Wenn du das unbedingt automatisieren willst, reicht ggf schon die Aufzeichnung dieses Vorgangs mit dem Makro-Recorder.
Merke: Die Zellen eines ZellVerbunds können zwar verschiedene Werte enthalten (der Klassiker nur 1.Zelle gefüllt, alle anderen leer bedeutet auch verschiedene Werte!), aber (in Xl!) stets nur ein Format, was man auch bemerkt, wenn man eine VerbundZelle zB rot färbt und dann den Verbund wieder aufhebt → alle Zellen sind (in Xl, nicht in LO/OO!) jetzt rot, auch, wenn sie vor dem Verbinden verschiedene Farben hatten und nicht nur farblos waren!
Morrn, Luc :-?

Anzeige
AW: 2x ja!
04.11.2014 08:28:25
yummi
Hallo Luc,
ich muss das automatisieren, weil es ein Review ist. Es gibt Unterschriftenfelder, wo die Leute eine elektronische Unterschrift hinterlegen, dass sie das 2. Sheet geprüft haben.
Das 2. Sheet soll dann, nach unterzeichnen, nicht mehr änderbar sein.
Das kann ich wie gesagt mit der locked Eigenschaft setzen. Wenn jetzt allerdings verbundene Zellen irgendwo auf dem Sheet sind, dann gibt es den Fehler, dass die locked Eigenschaft nicht gesetzt werden kann (ist auch beim händischen sperren so).
Deshalb will ich alle verbunden Zellen aufbrechen und zwar automatisch um sie alle sperren zu können. Es kann nämlich sein, dass nicht alle Zellen gesperrt sind. Darauf habe ich keinen Einfluss, weil das 2. Sheet in die Arbeitsmappe händisch reinkopiert wird vom 1. Reviewer.
Das Problem ist halt nur, dass das ziemlich lange dauern kann. Wie kann ich das beschleunigen?

Function SperreAlleZellen(ByVal wks As Worksheet)
Dim letztezeile As Long
Dim letztespalte As Long
letztezeile = wks.UsedRange.SpecialCells(xlCellTypeLastCell).Row
letztespalte = wks.UsedRange.SpecialCells(xlCellTypeLastCell).Column
wks.Range(wks.Cells(1, 1), wks.Cells(letztezeile, letztespalte)).UnMerge
wks.Cells.Locked = True
End Function
Habe das jetzt so zeitoptimiert, geht schneller als das mit dem gesamten Blatt zu machen. Geht es noch schneller?
Gruß
yummi

Anzeige
Geht es noch schneller?
04.11.2014 10:10:07
Rudi
Hallo,
schalte die autom. Berechnung zwischendurch ab. Und nat. wieder an!
Gruß
Rudi

AW: Geht es noch schneller?
04.11.2014 11:49:52
yummi
Danke Rudi,
gute Idee zusammen mit der Bereichsbeschränkung die ich vorher schon eingebaut habe geht es jetzt in akzeptabler Zeit.
Gruß
yummi

AW: Ohne die Zellverbünde aufzuheben
04.11.2014 12:05:54
Daniel
Hi
bei mir ist es in Excel 2010 nicht erforderlich, die Zellverbünde aufzuheben, wenn ich die Locked-Eigenschaft verändern will.
Man muss nur darauf achten, dass man von einem Zellverbund alle Zellen bearbeitet.
Der Fehler tritt auf, wenn man versucht einen Teil eines Zellverbundes zu verändern.
Worksheets("Tabelle1").Cells.Locked = True

sollte daher auch bei vorhandenen verbundenen Zellen problemlos funktionieren.
Da für alle Zellen dieselbe Formatierung gesetzt wird, geht das auch normalerweise recht schnell.

Anzeige
Eben, aber Yummi hat sich ja auf seine Idee ...
04.11.2014 12:09:32
Luc:-?
…versteift… ;->
Luc :-?

AW: Eben, aber Yummi hat sich ja auf seine Idee ...
04.11.2014 12:45:03
yummi
das hat nix mit versteift zu tun (auch nict mit beratungsresisten ;-))
Der Fehler ist ja real aufgetretten. Ich hab das ganze Blatt ausgewählt und locked auf true gesetzt und bekam die Meldung, dass die locked Eigenschaft nicht gesetzt werden kann.
Ohne verbundene Zellen geht's aber, daher die Idee es so zu machen
Bin immer offen für Ideen
Es funzt aber dank euren Hinweisen
yummi

Bei uns klappt das aber auch wie beschrieben...
04.11.2014 12:47:27
Luc:-?
Luc :-?

AW: Eben, aber Yummi hat sich ja auf seine Idee ...
04.11.2014 13:04:20
Daniel
Hi
dann zeig mal deine Datei, würde mich schon interessieren, was da die Ursache ist.
Texte kannst du ja löschen oder durch "x" ersetzen.
hast du eventuell versucht, den Code in einer früheren Excelversion laufen zu lassen?
Gruß Daniel

Anzeige
AW: Eben, aber Yummi hat sich ja auf seine Idee ...
04.11.2014 13:53:31
yummi
Hi,
hab die original Datei nicht hier, geht erst in ein paar Tagen.
Gruß
yummi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige