Beheben des Verhaltens von Makrotasten in geschützten Arbeitsblättern (Microsoft Excel)
Robin stellte eine Frage zu einer Kuriosität in Excel. Sie erstellt ein Arbeitsblatt, das eine Schaltfläche enthält, die mit der Formularsymbolleiste gezeichnet wurde, und weist der Schaltfläche ein Makro zu. Die Schaltfläche funktioniert einwandfrei, bis das Arbeitsblatt geschützt ist. Anschließend fungiert der gesamte obere Bereich des Arbeitsblatts als Schaltfläche. (Das Handsymbol wird angezeigt, unabhängig davon, wo Sie die Maus bewegen, und wenn Sie auf das Makro klicken, müssen Sie nicht auf die Schaltfläche selbst klicken.)
Das Problem tritt nicht bei allen Elementen in der Formularsymbolleiste auf, sondern nur unter bestimmten Umständen. Dies tritt hauptsächlich auf, weil einer Zelle eine Makroschaltfläche zugeordnet ist (z. B. Zelle B2) und die Zelle dann gelöscht wird. Dies bedeutet, dass die Schaltfläche im Wesentlichen „nicht verbunden“ ist, sodass Excel verwirrt ist, wo die Schaltfläche hingehört. Wenn das Arbeitsblatt geschützt ist, verhält sich Excel merkwürdig, weil es glaubt, dass die Schaltfläche „überall“ ist, da es nicht wirklich weiß, wo die Schaltfläche hingehört.
Die naheliegende Lösung besteht darin, sicherzustellen, dass die Makroschaltfläche immer an eine Zelle angehängt ist, die nicht gelöscht wird. Deaktivieren Sie die Arbeitsmappe, wählen Sie den Splitter der Schaltfläche neben den Spaltenüberschriften aus und verschieben Sie ihn in eine Zelle, der Sie ihn zuordnen möchten. Schützen Sie das Arbeitsblatt erneut und das seltsame Verhalten sollte verschwinden.
Wenn Sie die Schaltfläche, die das Problem verursacht, nicht sehen können, liegt dies möglicherweise daran, dass sie zu klein ist. Die Lösung für diese Situation besteht darin, ein Makro auszuführen, das nach allen Schaltflächen im Arbeitsblatt sucht und diese sichtbar macht. Führen Sie im ungeschützten Arbeitsblatt Folgendes aus:
Sub CheckShapes() Dim myShape As Shape For Each myShape In ActiveSheet.Shapes With myShape If .Height < 2 Then .Height = 20 If .Width < 2 Then .Width = 20 End With Next myShape End Sub
Das Makro durchläuft alle Formen im Arbeitsblatt und erhöht, wenn sie eine Höhe oder Breite von weniger als 2 Pixel haben, ihre Höhe und Breite, damit sie sichtbar sind. Jetzt sollten Sie die Makroschaltfläche sehen und an eine Stelle im Arbeitsblatt ziehen oder löschen können.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2830) gilt für Microsoft Excel 97, 2000, 2002 und 2003.